类图:
关于src和background
1.background是背景,会充满整个ImageView,相当于src的fitXY缩放类型。
2.src会覆盖background。
3.scaleType只作用于src,不影响background。
关于ImageView.ScaleType
将图片显示的效果分为以下四种:
A.保持纵横比(长宽比)
B.一定充满整个ImageView
C.可能会缩放
D.可能会截图
注:以上四种效果会有逻辑关系。
matrix:A、D。保持原图不变,当ImageView的长度或者宽度比图片小时,截取图片的左上部分,显示在ImageView的左上角。(~C --> A && ~B && D)
fitXY:B、C。当ImageView与图片的纵横比不相等时,就会改变图片的纵横比,以完全适应并充满整个ImageView。(B && ~D --> ~A && C)
fitStart:A、C。要么充满ImageView的左边,要么充满ImageView的上边。
fitCenter:A、C。要么横向充满ImageView,要么纵向充满ImageView。
fitEnd:A、C。要么充满ImageView的右边,要么充满ImageView的下边。
center:A、D。保持原图不变,当ImageView的长度或者宽度比图片小时,截取图片的中间部分,显示在ImageView的中间。(~C --> A && ~B && D)
centerCrop:A、B、C、D。图片充满整个ImageView并且保持纵横比不变,所以,只要ImageView与图片的大小不相等,就会缩放和截图,并且截取中间部分。
centerInside:A、C。图片完全显示在ImageView的中间,并且保持纵横比不变,所以一定会缩放。
以上八种类型中:
1.唯一一个会改变纵横比的是fitXY;
2.一定充满整个ImageView的是fitXY和centerCrop;
3.一定不会缩放的是matrix和center;
4.可能会截图的是matrix、center和centerCrop;
5.fitCenter与centerInside的区别是,centerInside只会缩,不会放。
注:ImageView默认的scaleType是fitCenter。