第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

圖片的簡(jiǎn)單旋轉(zhuǎn)縮放

標(biāo)簽:
Android

activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <ImageView 
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        android:class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="@drawable/ic_launcher"/>

    <!-- 

     在这里总结一下scaleType属性的意思:

     1、matrix:保持原图的效果(不随着ImageView的大小而变化),图片的左上角和ImageView的左上角对齐

     2、fitXY:  不保持原图效果,x、y方向都进行缩放,也就是填充的效果

     3、fitStart:不保持原图的效果,x、y按等比例的方式进行缩放到ImageView的宽度大小(所谓宽度就是边短的),图片的位置在ImageView开始的位置(左上角即为开始位置)

     4、fitCenter:不保持原图的效果,x、y按等比例的方式进行缩放到ImageView的宽度大小(所谓宽度就是边短的),图片的位置在ImageView中间的位置

     5、fitEnd:不保持原图的效果,x、y按等比例的方式进行缩放到ImageView的宽度大小(所谓宽度就是边短的),图片的位置在ImageView末尾的位置

     6、center:保持原图的大小,当图片的大小>ImageView的大小时候,所显示的是图片中间的区域;当图片的大小<ImageView的大小时候,会位于ImageView的中心而不是屏幕的中心

     7、centerCrop:不保持原图的大小,x、y等比例缩放到ImageView的高度大小(所谓高度就是边长的),图片居中显示,溢出部分不显示

     8、centerInside:不保持原图的大小,当图片的大小>ImageView的大小,图片会按图片的宽高进行缩放到能够显示完整图片为止,当图片的大小<ImageView的大小,图片会保持原来的效果,居中显示

    以上都为自己的总结,如有疑问可以自己进行尝试。

     -->

<TextView 
    android:id="@+id/tv1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="对图片进行缩放"/>
    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <TextView 
        android:id="@+id/tv2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="对图片进行旋转"/>
    <SeekBar
        android:id="@+id/seekBar2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

MainActivity.java:

package com.example.myimageview;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
public class MainActivity extends Activity implements OnSeekBarChangeListener {
int windowWidth;
int windowHeight;
private Matrix matrix = new Matrix();
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SeekBar seekBar1 = (SeekBar) findViewById(R.id.seekBar1);
SeekBar seekBar2 = (SeekBar) findViewById(R.id.seekBar2);
iv = (ImageView) findViewById(R.id.iv);
seekBar1.setOnSeekBarChangeListener(this);
seekBar2.setOnSeekBarChangeListener(this);
//得到屏幕的宽高
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
windowWidth = dm.widthPixels;
windowHeight = dm.heightPixels;
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
//在这里处理相关的逻辑代码
if(seekBar.getId() == R.id.seekBar1){
//在这里执行缩放的操作
iv.setLayoutParams(new LinearLayout.LayoutParams(100+progress, windowHeight*2/5));
//之前我是这么写的iv.setlayoutParams(new ViewGroup.LayoutParams(100+progress, windowHeight*2/5))发生ViewGroup.LayoutParams向Linearlayout.LayoutParams强制转换错误
/*
 * Set the layout parameters associated with this view. These supply parameters to the parent of this view specifying how it should be arranged.
 * 此话的意思是设置此视图的布局关联的布局参数,此视图的父视图指定安排它的参数。(因为此视图的父视图是Linearlayout,当你写LinearLayout的父类ViewGroup的时候就会发生强转的错误)
 */
}else{
//在这里执行旋转的操作
matrix.setRotate(progress);
@SuppressWarnings("deprecation")
Bitmap bp = ((BitmapDrawable)(getResources().getDrawable(R.drawable.ic_launcher))).getBitmap();
/*
 * 上面的是Drawable向Bitmap进行转化
 * Bitmap向BitmapDrawable转化的时候直接BitmapDrawable bd = new BitmapDrawable(Bitmap bit)
 */
//上面已经对矩阵进行了旋转,在这里只要由这个矩阵生成Bitmap就ok
Bitmap scale_bp = Bitmap.createBitmap(bp, 0, 0, bp.getWidth(), bp.getHeight(), matrix, true);
iv.setImageBitmap(scale_bp);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
}

原文链接:http://www.apkbus.com/blog-523232-59419.html

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消