您的位置:首页 > 其它

ImageView控件的scaleType属性

2018-02-26 16:01 232 查看
1.android:scaleType=“center”

保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size时,多出来的部分被截掉。

2.android:scaleType=“centerInside”

以原图正常显示为目的,如果原图大小大于ImageView的size,就按照比例缩小原图的宽高,居中显示在ImageView中。如果原图size小于ImageView的size,则不做处理居中显示图片。

3.android:scaleType=“centerCrop”

以原图填满ImageView为目的,如果原图size大于ImageView的size,则与center_inside一样,按比例缩小,居中显示在ImageView上。如果原图size小于ImageView的size,则按比例拉升原图的宽和高,填充ImageView居中显示。

4.android:scaleType=“matrix”

不改变原图的大小,从ImageView的左上角开始绘制,超出部分做剪切处理。

5.androd:scaleType=“fit_xy”

把图片按照指定的大小在ImageView中显示,拉伸显示图片,不保持原比例,填满ImageView.

6.android:scaleType=“fit_start”

把原图按照比例放大缩小到ImageView的高度,显示在ImageView的start(前部/上部)。

7.android:sacleType=“fit_center”

把原图按照比例放大缩小到ImageView的高度,显示在ImageView的center(中部/居中显示)。

8.android:scaleType=“fit_end”

把原图按照比例放大缩小到ImageView的高度,显示在ImageVIew的end(后部/尾部/底部)

注:八个ScaleType,其实可以分为三个类型:

以FIT_开头的4种,它们的共同点是都会对图片进行缩放;

以CENTER_开头的3种,它们的共同点是居中显示,图片的中心点会与ImageView的中心点重叠;

ScaleType.MATRIX,这种就直接翻到最后看内容吧;

ScaleType.MATRIX

一般情况下重点都放在最后,在这八种ScaleType中,这个模式就是重点了。该模式需要与ImageView.setImageMatrix(Matrix matrix) 配合使用,因为该模式需要用于指定一个变换矩阵用于指定图片如何展示。其实前面的7种模式都是通过ImageView在内部生成了相应的变换矩阵,等于是提供了该模式的一种特定值,使用这个模式只要传入相应矩阵,也就能实现上述七种显示效果。

例:

imageView.setScaleType(ImageView.ScaleType.MATRIX);  //设置为矩阵模式

Matrix matrix = new Matrix();           //创建一个单位矩阵
matrix.setTranslate(100, 100);          //平移x和y各100单位
matrix.preRotate(30);                   //顺时针旋转30度
imageView.setImageMatrix(matrix);       //设置并应用矩阵
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: