ImageView的ScaleType属性详解

ImageView的ScaleType属性是用来设置图片在View上如何显示,按照何种比例缩放,显示部分还是显示整体等等。 可以在XML文件中设置,也可以在代码中设置 在XML文件中设置:
<ImageView
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:scaleType="center"
/>
在代码中设置:
mImageView.setScaleType(ImageView.ScleType.CENTER)
ScaleType的属性值有以下几种: center, centerCrop, centerInside, fitXY, fitStart, fitEnd, fitCenter, matrix 下面对这几种属性值进行详解:

测试的原始图片:
test1.jpg(100*100)

test2.jpg(950*633)
ImageView的ScaleType属性详解_第1张图片
(1)center
按图片的原来size居中显示,当图片宽高超过ImageView的宽高,则截 取图片的居中部分显示

两张图片的显示效果:

ImageView的ScaleType属性详解_第2张图片

(2)centerCrop
当图片的宽高小于ImageView的宽高时,则按比例扩大图片的宽高到ImageView的宽高。当图片的宽高大于ImageView的宽高,则截取图片的居中部分显示(只放大不缩小)。
两张图片的显示效果如下:

ImageView的ScaleType属性详解_第3张图片

(3)centerInside
显示完整图片,当图片的宽高大于ImageView的宽高时,则按比例缩小图片的宽高,并居中显示图片。当图片的宽高小于ImageView的宽高,则居中显示显示(只缩小不放大)。

ImageView的ScaleType属性详解_第4张图片 ImageView的ScaleType属性详解_第5张图片

(4)fixXY
不按比例缩放图片,目标是把图片塞满整个ImageView

ImageView的ScaleType属性详解_第6张图片

(5)fitStart
把图片按比例扩大或者缩小到ImageView的宽度(注意是宽度,不管高度),显示在ImageView的上方位置。

ImageView的ScaleType属性详解_第7张图片 ImageView的ScaleType属性详解_第8张图片

(6)fitEnd
把图片按比例扩大或者缩小到ImageView的宽度(注意是宽度,不管高度),显示在ImageView的下方位置。

ImageView的ScaleType属性详解_第9张图片 ImageView的ScaleType属性详解_第10张图片

(6)fitCenter
把图片按比例扩大或者缩小到ImageView的宽度(注意是宽度,不管高度),显示在ImageView的中间位置。

ImageView的ScaleType属性详解_第11张图片 ImageView的ScaleType属性详解_第12张图片

(8)matrix
不对图片做任何缩放,显示在ImageView上,当图片大于ImageView时,
则截取图片左上方部分显示在ImageView上。

ImageView的ScaleType属性详解_第13张图片 ImageView的ScaleType属性详解_第14张图片


以上就是几种ScaleType属性值的详解,并且要注意的是ImageView默认的ScaleType属性值是fitCenter

你可能感兴趣的:(Android开发)