如果你跟我一样追求美观界面,同时又非常健忘。当谈到ImageView
缩放图片时,偏偏就把各种ScaleType
的展示效果给忘了。所以你花了10~15分钟把每种效果都编译运行一遍看每种效果的异同。不久之后,这个循环又将发生一遍。
下面展示不同ScaleType
的效果。接着是官方文档的解释,最后是一点有用的提醒。
Scale Types
完整的官方解释Android documentation.
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_END
和FIT_START
的ImageView
的实际边界往往都比缩放后的图片要大。如果要设置ImageView
的宽高于缩放后的图片一致,在xml中添加
android:adjustViewBounds="true”
结果