[译]Android|[译]Android ImageView ScaleType(图解)

如果你跟我一样追求美观界面,同时又非常健忘。当谈到ImageView缩放图片时,偏偏就把各种ScaleType的展示效果给忘了。所以你花了10~15分钟把每种效果都编译运行一遍看每种效果的异同。不久之后,这个循环又将发生一遍。
下面展示不同ScaleType的效果。接着是官方文档的解释,最后是一点有用的提醒。
[译]Android|[译]Android ImageView ScaleType(图解)
文章图片
scaletype.png Scale Types
完整的官方解释Android documentation.
【[译]Android|[译]Android ImageView ScaleType(图解)】CENTER

放中间,不拉伸。
CENTER_CROP

均匀拉伸(保持宽高比),宽高>=ImageView的宽高
CENTER_INSIDE

均匀拉伸(保持宽高比),宽高<=ImageView的宽高
FIT_CENTER

Matrix.ScaleToFit.CENTER来拉伸图片。
Matrix.ScaleToFit.CENTER:等比缩放,确保原图会整个放在View内,宽高至少有一个适配容器宽高,居中显示。
FIT_END

Matrix.ScaleToFit.END来拉伸图片。
Matrix.ScaleToFit.END:同上,底部显示。
FIT_START

Matrix.ScaleToFit.START来拉伸图片。
Matrix.ScaleToFit.START:同上,头部显示。
FIT_XY

Matrix.ScaleToFit.FILL来拉伸图片。
Matrix.ScaleToFit.FILL:原图完全填充容器,可能会改变宽高比。
MATRIX

Matrix旋转图片
调整边界 ImageView.ScaleType并不是万金油。如果你注意到赋值了CENTER_INSIDE, FIT_CENTER, FIT_ENDFIT_STARTImageView的实际边界往往都比缩放后的图片要大。如果要设置ImageView的宽高于缩放后的图片一致,在xml中添加

android:adjustViewBounds="true”

结果

[译]Android|[译]Android ImageView ScaleType(图解)
文章图片
adjustviewbounds

    推荐阅读