需求&起因

有时候没有找到合适大小的资源,需要修改图片大小而且不改变ImageButton的大小。可以通过缩放图片大小的方式改变外观。

ImageView的属性android:scaleType也适用于ImageButton

ImageView的scaleType属性取值:matrix(默认), center, centerCrop, centerInside, fitCenter, fitEnd, fitStart, fitXY

大致分为两类:不改变原图尺寸;缩放原图尺寸

1、scaleType=“matrix”//不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理。

2、scaleType=“Center”//不改变原图的大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像,超过部分裁剪。
3、scaleType=“centerCrop”//将原图的中心对准ImageView的中心,等比例放大原图,直到填满ImageView为止(指的是ImageView的宽和高都要填满)。如果原图尺寸大于ImageView尺寸,超过部分裁剪。
4、scaleType=“centerInside”//将图片的内容完整居中显示,通过按比例缩放原图的size宽(高)等于或小于ImageView的宽(高)。如果原图的size本身就小于ImageView的size,则原图居中显示。
5、scaleType=“fitXY”//把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageView
6、scaleType=“fitStart”//把原图按比例缩放到ImageView的高度,与ImageView左边对齐
7、scaleType=“fitCenter”//把原图按比例缩放到ImageView的高度,居中显示
8、scaleType=“fitEnd”//把原图按比例缩放到ImageView的高度,与ImageView右边对齐

padding属性

控制内边距,paddingTop paddingBottom paddingStart paddingEnd 分别控制上下左右的边距

而ImageButton直接设置padding是没有效果的

实现

android:scaleType设置为 android:scaleType=“fitXY”

然后设置padding,调整padding的大小改变图片的尺寸,图片不保证原比例。

替代方案

可以用Layout和ImageView 替代ImageButton, 不用设置android:scaleType属性,直接设置ImageView的大小即可。

 

posted on 2018-03-10 17:21  追问图  阅读(3588)  评论(2编辑  收藏  举报