Android中的ImageView的scaleType属性详解

时间:2023-03-08 17:55:02

ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。

设置的方式包括:

1. 在layout xml中定义android:scaleType="CENTER"

2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);

接下来,将对ScaleType的值和对应的显示效果用最直观的方式——真图演示的方法,来进行说明。

matrix 用矩阵来绘制(从左上角起始的矩阵区域)

fitXY  把图片不按比例扩大/缩小到View的大小显示(确保图片会完整显示,并充满View)

fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置(图片会完整显示)

fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示(图片会完整显示)

fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置(图片会完整显示)

center  按图片的原来size居中显示,当图片宽超过View的宽,则截取图片的居中部分显示,当图片宽小于View的宽,则图片居中显示

centerCrop  按比例扩大/缩小图片的size居中显示,使得图片的高等于View的高,使得图片宽等于或大于View的宽

centerInside  将图片的内容完整居中显示,使得图片按比例缩小或原来的大小(图片比View小时)使得图片宽等于或小于View的宽 (图片会完整显示)

列表item显示小图建议使用 centerCrop

页面中的大图建议使用fitXY,服务器返回的图片尽量按显示比例裁剪好。

或者fitCenter配合adjustviewbounds="true",maxWidth, maxHeight设为期望的最大尺寸,视图会根据显示图片自动调整视图组件的高度。周边也不会留有空的。

效果图1:

图片比ImageView大的截图

Android中的ImageView的scaleType属性详解

效果图2:

图片比ImageView小的截图

Android中的ImageView的scaleType属性详解