imageView属性之imageView.setScaleType详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mr_jianrong/article/details/86485704

一 
imageView.setScaleType是imageView为了适配屏幕需要的一个属性。 
设置的方式包括: 
1. 在layout xml中定义android:scaleType=”CENTER” 
2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);

二、 
属性取值大概有这么几个: 
1. CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示 
2. CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽) 
3. CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽 
4. FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示 
5. FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置 
6. FIT_START / fitStart 把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置 
7. FIT_XY / fitXY 把图片不按比例扩大/缩小到View的大小显示 
8. MATRIX / matrix 用矩阵来绘制. 
三、详解: 
1·ImageView.ScaleType.center:图片位于视图中间,但不执行缩放。 
2·ImageView.ScaleType.CENTER_CROP 按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或者大于相应的视图的维度 
3·ImageView.ScaleType.CENTER_INSIDE按统一比例缩放图片(保持图片的尺寸比例)便于图片的两维(宽度和高度)等于或者小于相应的视图的维度 
4·ImageView.ScaleType.FIT_CENTER缩放图片使用center 
5·ImageView.ScaleType.FIT_END缩放图片使用END 
6·ImageView.ScaleType.FIT_START缩放图片使用START 
7·ImageView.ScaleType.FIT_XY缩放图片使用XY 
8·ImageView.ScaleType.MATRIX当绘制时使用图片矩阵缩放 
四、MATRIX矩阵可以动态缩小放大图片来显示 
写一个简单的例子: 
//获得Bitmap的高和宽

  int bmpWidth=bmp.getWidth(); 
  int bmpHeight=bmp.getHeight(); 

//设置缩小比例

  double scale=0.8; 
  //计算出这次要缩小的比例 
  scaleWidth=(float)(scaleWidth*scale); 
  scaleHeight=(float)(scaleHeight*scale); 

//产生resize后的Bitmap对象

 Matrix matrix=new Matrix(); 
 matrix.postScale(scaleWidth, scaleHeight); 
 Bitmap resizeBmp=Bitmap.createBitmap(bmp, 0, 0, bmpWidth, bmpHeight, matrix, true); 

 <ImageView 
     android:id="@+id/image" 
     android:layout_width="fill_parent"  
     android:layout_height="fill_parent" 
     android:scaleType="center" 
     android:src="@drawable/candle" 
/> 
 

猜你喜欢

转载自blog.csdn.net/mr_jianrong/article/details/86485704
今日推荐