ImageView继承自View
android:background 设置图片
android:src 设置图片
background和src都可以设置图片,它们之间的区别:
background指的是背景,src指的是内容。
在使用src填入图片时,是按照图片大小直接填,不会改变图片的大小,而使用background,则会根据ImageView给定的宽度进行拉伸。
当使用src时,如果图片在ImageView里面放不下,则图片会等比例缩小到合适大小再显示,在图片的缩小过程中保持了长宽比,缩小后默认放在ImageView的中央位置,此时设置adjustViewBounds为true或false不影响图片的缩放。此时由于图片是处于缩放状态下,所以此时设置图片的maxHeight和maxWidth都是无效的。此时的scaleType默认是fitCenter(因为图片默认放在中央位置),可以通过设置scaleType为fitStart或fitEnd分别将图片放于ImageView的左上角或右下角。
当图片可以在不缩放的情况下存在于ImageView时,图片会默认居中显示,此时可以通过设置 adjustViewBounds、maxHeight和maxWidth来控制图片的缩放。
scaleType属性
值
说明
fitStart
保持纵横比缩放图片,直到较长的边与Image的边长相等,缩放完成后将图片放在ImageView的左上角
fitCenter
同上,缩放后放于中间(默认)
fitEnd
同上,缩放后放于右下角
centerCrop
按横纵比缩放,直接完全覆盖整个 ImageView
centerInside
按横纵比缩放,使得 ImageView 能够完全显示这个图片
fitXY
不按比例缩放图片,目标是把图片塞满整个 View
matrix
ImageView 的左上角开始绘制原图,原图超过 ImageView 的部分作裁剪处理
center
保持原图的大小,显示在 ImageView 的中心,当原图的 size 大于 ImageView 的 size,超过部分裁剪处理
alpha属性:设置透明度
adjustViewBounds属性:设置是否保持长宽比
adjustViewBounds属性用于设置缩放时是否保持原图长宽比,单独设置不起作用,需要配合 maxWidth 和 maxHeight 属性一起使用,而后面这两个属性也是需要 android:adjustViewBounds 为 true 才会生效,三者是共生关系。
https://www.twle.cn/l/yufei/android/android-basic-imageview.html