ImageView.ScaleType详解(多图)

ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。
设置的方式包括:
1. 在layout xml中定义android:scaleType=”CENTER”
2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);

结论:这里写图片描述
(fitCenter只比centerInside多了一个等比放大,缩小时无区别。)

假如不明确指明的话,默认为fitCenter,下面以图文方式详细说明。

测试图片1:正方形,200x200 (px)这里写图片描述 测试图片2:长方形,100x150 (px) 这里写图片描述


1. center : 按图片的原来size居中显示,图片不缩放,图片不填充满view,当图片长/宽超过View的长/宽,则截取图片的居中部分显示

这里写图片描述 这里写图片描述
这里写图片描述 这里写图片描述这里写图片描述


2. centerCrop : 按比例扩大或缩小图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)。即图片填充满view,使图片的短边缩放到与view的边相等;长边以中心点起始向外裁剪,直到填充满view的另一垂直边

这里写图片描述这里写图片描述
这里写图片描述这里写图片描述 这里写图片描述


3.centerInside : 将图片的内容完整居中显示,不填满,通过按比例缩小图片使得图片长/宽等于或小于View的长/宽。即使图片的长边缩小(不放大)到与view的边相等;短边肯定够不到另一垂直边,所以短边处会露出背景

这里写图片描述这里写图片描述
这里写图片描述这里写图片描述 这里写图片描述


4.fitCenter : 把图片按比例扩大/缩小,直到图片的长边与view的边相等,居中显示,会填满,不会被裁剪,但图片的短边处会露出背景

这里写图片描述这里写图片描述
这里写图片描述这里写图片描述这里写图片描述


5.fitStart : fitStart , fitEnd在图片缩放效果上与fitCenter一样,只是显示的位置不同,fitStart 是置于顶部,fitCenter居中,fitEnd置于底部。

这里写图片描述这里写图片描述
这里写图片描述这里写图片描述这里写图片描述


6.fitEnd : fitStart , fitEnd在图片缩放效果上与fitCenter一样,只是显示的位置不同,fitStart 是置于顶部,fitCenter居中,fitEnd置于底部。

这里写图片描述这里写图片描述
这里写图片描述这里写图片描述这里写图片描述


7.fitXY : 不按比例缩放图片,目标是把图片塞满整个View。不会被裁剪,但会被拉伸。

这里写图片描述这里写图片描述
这里写图片描述这里写图片描述这里写图片描述


8.matriX :用矩阵从(0,0)点处来绘制,按图片的原来size居中显示,图片不缩放,动态缩小放大图片来显示,框出多少就是多少,框完就有富余,没框完就会被裁剪(从左上角处往右下角处裁),刚好框完就刚好充满view

这里写图片描述这里写图片描述
这里写图片描述这里写图片描述 这里写图片描述


另:wrap_content模式时不管图片是正方形还是长方形,与scaleType无关:

这里写图片描述这里写图片描述

完整demo下载地址:https://github.com/taoranziwangji/ImageViewScaleTypeDemo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值