Imageview的scale属性分析

转载文章,只为了收藏,如有侵权,请私聊。原文请看
http://souly.cn/%E6%8A%80%E6%9C%AF%E5%8D%9A%E6%96%87/2015/07/02/imageView%E7%9A%84scale%E5%B1%9E%E6%80%A7%E5%88%86%E6%9E%90/
scaleType的属性值有:matrix fitXY fitStart fitCenter fitEnd center centerCrop centerInside

它们之间的区别如下:

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

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

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

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

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

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

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

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

附上两张实验的截图:

图1: 图片比ImageView大的截图
这里写图片描述

图2: 图比ImageView小 实验截图
这里写图片描述
总结:scaleType的属性值可以分为几类:

第一类:matrix ,center不会改变原图大小。放在固定宽高的imgview中,要么图片小,留下一大片空白,要么图片太大显示不完。 这两个区别就在于如果图片太大,matrix显示的是左上角,center显示的是图片中间。图片大小比例都不变。

第二类:fitStart , fitEnd , fitCenter,这3个效果差不多,都是适应长的边,适应其中一条边,另一条边小于边缘。图片比例不变。

第三类:fitXY。这个是最简单的。适应两条边 。图片大小比例都变 。

第四类:centerCrop 都是适应短的边,适应其中一条边,另一条边大于边缘。图片比例不变。

第五类:centerInside 这个最麻烦,最容易和fitCenter弄混,这俩效果确实差不多。在图片大于边缘的时候效果是一样的,都是适应长边。 区别就在于图片小的时候。fitCenter仍然会是一条边适应,另一条边小于边缘。但是centerInside不会适应任何一条边。centerInside会在图片 四个周围留下空白。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值