一
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"
/>