ImageView的scaleType的属性理解

ImageView的scaleType的属性值详解

看了好多ImageView关于scaleType属性的讲解,但是总感觉有些不太准确,自己试验了一下。做下总结!

MATRIX
FIT_XY
FIT_START
FIT_END
FIT_CENTER
CENTER
CENTER_CROP
CENTER_INSIDE

详解
注:下文中长边指的是已图片中心点和ImageView中心点为基准,在放大或缩小过程中宽或高先达到ImageView边界的边
短边则相反

1.android:scaleType=“center”
保持原图的大小,显示在ImageView的中心,不缩放。当原图的size大于ImageView的size时,多出来的部分被截掉。

2.android:scaleType=“center_inside”
以原图正常显示为目的,
1、如果原图size小于ImageView的size,则不做处理居中显示图片。
2、如果原图大小大于ImageView的size,就等照比例缩小原图的宽高,直到长边达到ImageView边界,多余部分裁剪。居中显示在ImageView中。

3.android:scaleType=“center_crop”
以原图填满ImageView为目的。
1、如果原图size大于ImageView的size,则等比例缩小图片,直到图片长边到达边界,其余部分被裁剪,居中显示在ImageView上。
2、如果原图size小于ImageView的size,则等比例拉升图片,直到图片短边到达边界,其余部分被裁剪,居中显示在ImageView上。
总结:
图片等比例缩放,不会被拉伸。在放大或缩小时都会填满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”
已原图正常显示为目的
1、如果原图size大于ImageView的size,则等比例缩小图片,直到图片短边到达边界,其余部分被裁剪,居中显示在ImageView上。
2、如果原图size小于ImageView的size,则等比例拉升图片,直到图片长边到达边界,其余部分被裁剪,居中显示在ImageView上。
总结:
图片等比例缩放,不会被拉伸。无论放大或缩小时都会保证将图片完整的显示在ImageView中,且长或宽有一边到达ImageView边界。不一定填满ImageView。

8.android:scaleType=“fit_end”
把原图等比例放大缩小到ImageView的高度,显示在ImageVIew的end(横图底部/竖图右部)

发布了43 篇原创文章 · 获赞 22 · 访问量 5929

猜你喜欢

转载自blog.csdn.net/qq_41466437/article/details/103171424