ImageViewandroid:scaleType 属性的含义如下:

控制如何调整图片大小和图片位移以匹配 ImageView 的大小(即宽和高)。

它有以下几个值:

属性值 代码值
center ImageView.ScaleType.CENTER
centerCrop ImageView.ScaleType.CENTER_CROP
centerInside ImageView.ScaleType.CENTER_INSIDE
fitCenter ImageView.ScaleType.FIT_CENTER
fitStart ImageView.ScaleType.FIT_START
fitEnd ImageView.ScaleType.FIT_END
fitXY ImageView.ScaleType.FIT_XY
matrix ImageView.ScaleType.MATRIX

默认值为:fitCenter

1. 精解

以下使用两个宽高均为:400x400pxImageView 控件来分别展示宽高为:125x127px678x674px 的图片。

ImageView 控件的背景色均为红色,他们的父视图背景色为灰色。

1.1 center

图片保持原始宽高。

将图片居中展示在 ImageView 里,超出 ImageView 宽高的部分将被截去。

image_scale_center

1.2 centerCrop

等比例缩放图片使得图片的宽高都分别 >= ImageView 的宽高(减去 padding),接着截取缩放后的图片的中间部分。

image_scale_center_crop.png

1.3 centerInside

图片居中展示在 ImageView 里,若图片大小 > ImageView 大小,则将图片等比列缩小,使得整张图片都能完全展示在
ImageView 里,也就是说图片水平和垂直方向至少有一方向上的边与 ImageView 的边对齐。

image_scale_center_inside.png

1.4 fitCenter (默认值)

等比列缩放图片使得图片水平和垂直方向至少有一方向上的边与 ImageView 的边对齐,最后将图片居中显示在 ImageView 里。

image_scale_fit_center.png

1.5 fitStart

fitCenter 缩放规则相同,最后使图片的上边和左边都分别与 ImageView 的上边和左边对齐。

image_scale_fit_start.png

1.6 fitEnd

fitCenter 缩放规则相同,最后使图片的下边和右边都分别与 ImageView 的下边和右边对齐。

image_scale_fit_end.png

1.7 fitXY

不等比例缩放图片,使得图片的四边与 ImageView 的四边都对齐。

image_scale_fit_xy.png

1.8 matrix

矩阵被用于在图形绘制时操作画布。对于 ImageView 而言,矩阵可以用于位移图片、翻转图片、旋转图片等,尤其是涉及用户手势相关的操作。

待续

image_scale_matrix.png

2. 总结

  • 当图片比 ImageView 小时,centercenterInside 的展示效果是相同的。
  • 当图片比 ImageView 大时,centerInsidefitCenter 的展示效果是相同的。
  • fitCenterfitStartfitEnd 这三个的缩放规则是一样的,区别在于缩放后图片位移不同。
  • 当希望匹配图片的宽高比,尤其是在使用 fitXY 这一属性值时,可以设置 adjustViewBounds=true

3. 参考资料

  • Working with the ImageView
  • Tanis.7x's Answer

更多相关文章

  1. android 屏幕分辨率获取,等比缩放,屏幕横竖屏设置,屏幕截取
  2. Android(安卓)ApiDemos示例解析(13):App->Activity->Reorder Acti
  3. Android控件拖拽功能的实现
  4. tess_two Android图片文字识别
  5. 图片的使用
  6. android中图片加载到内存的实例代码
  7. Android(安卓)把图片进行压缩
  8. Android处理图片透明度并绘画图片
  9. android沉浸式全屏显示

随机推荐

  1. Android(安卓)Studio系列教程三--快捷键
  2. android矢量图vector的简单介绍
  3. 前端和Android(安卓)/ IOS 对接问题
  4. Android内核开发:开发板选购
  5. Java后端学Android(1)-Hello World
  6. android:layout_gravity 和 android:grav
  7. Android坐标系、视图坐标系与触控事件(Mot
  8. Android软键盘-显示隐藏软键盘
  9. 2011年,Android星光不再闪烁
  10. 【Android(安卓)安装包优化】Android(安