ImageView 的scaleType属性。

ImageView 的scaleType属性。ImageView可以设置src和background属性,只有设置了“前景图”src,设置的scalType属性才会生效。imageView的scaleType可以取到8个数值:CENTER/center按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示CENTER_CROP/centerCrop按比例扩大图片的size居中显

ImageView可以设置src和background属性,只有设置了“前景图”src,设置的scalType属性才会生效。

imageView的scaleType可以取到8个数值:

 
CENTER /center  按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
 
CENTER_CROP / centerCrop  按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
 
CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
 
FIT_CENTER / fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示
 
FIT_END / fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
 
FIT_START / fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
 
FIT_XY / fitXY  把图片不按比例扩大/缩小到View的大小显示
 
MATRIX / matrix 用矩阵来绘制

可以分为三类:center打头的属性、fit打头的属性、矩阵属性

一:center属性

(1 )center属性效果图(红色为imageView 背景,绿色图片为src,白色为ImageView所在父控件,下同):

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

ImageView 的scaleType属性。

ImageView 的scaleType属性。

 图一:图片宽高小于imageView 宽高,原尺寸居中显示

ImageView 的scaleType属性。

ImageView 的scaleType属性。

图二:图片宽大于ImageView 宽度,截取到imageView宽度居中显示。

(2)centerCrop属性效果图

CENTER_CROP / centerCrop  按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)

ImageView 的scaleType属性。

ImageView 的scaleType属性。

图三:图片拉伸宽高,占据了整个imageView,并覆盖掉了红色背景色

(3)centerInside属性效果图

CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽

ImageView 的scaleType属性。

ImageView 的scaleType属性。

图四:图片整个居中显示在imageView中,由于图片宽高小于imageView宽高,所以无需压缩宽高

ImageView 的scaleType属性。

ImageView 的scaleType属性。

图五:调整imageView宽高,由于是centerInside属性,要整个居中显示在imageView中,而图片宽大于iamgeView宽度,所以要等比例压缩图片宽高。

二:fit属性:

(1)fitCenter属性效果图:

FIT_CENTER / fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示

ImageView 的scaleType属性。

ImageView 的scaleType属性。

图六:图片宽度<imageView宽度,等比例拉伸到imageView宽时,居中显示。

(2)fitStart属性效果图:

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

ImageView 的scaleType属性。

ImageView 的scaleType属性。

图七:图片宽度小于imageView宽度,等比例拉伸到imageView宽时,显示在imageView顶部。

(3)fitEnd属性效果图:

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

ImageView 的scaleType属性。

ImageView 的scaleType属性。

图八:图片宽度小于imageView宽度,等比例拉伸到imageView宽时,显示在imageView底部。

(4)fitXY属性效果图

ImageView 的scaleType属性。

FIT_XY / fitXY  把图片不按比例扩大/缩小到View的大小显示

ImageView 的scaleType属性。

图九:不等比例拉伸宽高,填充ImageView

(三)Matrix属性

MATRIX / matrix 用矩阵来绘制

使用这种类型的属性后,图片在imageView中位置受到所设置矩阵属性影响

 <ImageView
                android:id="@+id/image8"
                android:layout_width="250dp"
                android:layout_height="250dp"
                android:layout_marginTop="10dp"
                android:background="#ff0000"
                android:scaleType="matrix"
                android:src="@drawable/image" />

ImageView 的scaleType属性。

ImageView 的scaleType属性。

图十:在布局文件中设置matrix属性后,默认效果图

Matrix matrix = new Matrix();
matrix.postTranslate(20, 0);
imageView8.setImageMatrix(matrix);

ImageView 的scaleType属性。

ImageView 的scaleType属性。

图十一:矩阵设置平移20像素后,设置给imageView后,效果图。

matrix.postTranslate(20, 0);
matrix.postRotate(15);
imageView8.setImageMatrix(matrix);

ImageView 的scaleType属性。

ImageView 的scaleType属性。

图十二:矩阵设置平移20像素,旋转15度后设置给imageView后效果图
tip:如果ImageView在设置图片资源(src)属性后,并没有指明scaleType类型,scaleType默认值为:centerInside

    如果ImageView设置的scaleType属性不是matrix,在代码中调用imageView.setImageMatrix(matrix)无效。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/39124.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注