版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ruizhenggang/article/details/80401224
1.ScaleType.FIT_CENTER 默认
图片会被等比缩放到能够填充控件大小,并居中展示。
2.ScaleType.FIT_START
图片等比缩放到控件大小,并放置在控件的上边或左边展示。此模式下会在ImageView
的下半部分留白,如果图片高度大于宽,那么就会在ImageView
的右半部份留白。
3.ScaleType.FIT_END
图片等比缩放到控件大小,并放置在控件的下边或右边展示。此模式下会在ImageView
的上半部分留白,如果图片高度大于宽,那么就会在ImageView
的左半部分留白。
4.ScaleType.FIT_XY(较常用)
图片缩放到控件大小,完全填充控件大小展示。注意,此模式不是等比缩放。
5.ScaleType.CENTER
不使用缩放,ImageView
会展示图片的中心部分,即图片的中心点和ImageView
的中心点重叠,如果图片的大小小于控件的宽高,那么图片会被居中显示。
6.ScaleType.CENTER_CROP
这是我最喜欢的模式,因为在该模式下,图片会被等比缩放直到完全填充整个ImageView
,并居中显示。该模式也是最常用的模式了。图片的高度是能完全展示出来的。
7.ScaleType.CENTER_INSIDE
使用此模式以完全展示图片的内容为目的。图片将被等比缩放到能够完整展示在ImageView
中并居中,如果图片大小小于控件大小,那么就直接居中展示该图片
8.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);
//设置并应用矩阵