[译]Android ImageView ScaleType:图解

如果你跟我一样追求美观界面,同时又非常健忘。当谈到ImageView缩放图片时,偏偏就把各种ScaleType的展示效果给忘了。所以你花了10~15分钟把每种效果都编译运行一遍看每种效果的异同。不久之后,这个循环又将发生一遍。

下面展示不同ScaleType的效果。接着是官方文档的解释,最后是一点有用的提醒。

scaletype.png

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_ENDFIT_STARTImageView的实际边界往往都比缩放后的图片要大。如果要设置ImageView的宽高于缩放后的图片一致,在xml中添加

android:adjustViewBounds="true”

结果


adjustviewbounds
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容