代码改变世界

Android ImageView的ScaleType属性

2014-12-17 17:37  肖恩也有梦想  阅读(2443)  评论(0编辑  收藏  举报

ImageView中ScaleType属性表示图片的显示方式,共有8种取值:

matrix:将图片显示到定义好的宽度和高度描述的矩形中,不做任何缩放(图形的左上角对齐矩形的左上角)。意味着,如果矩形比图形大,则图片显示在左上角,如果矩形比图形小,则只会显示图形矩形部分的大小。

fitXY:将图片不按等比例扩大/缩小到View的大小显示(确保图片会完整显示,并充满View

fitStart:将图片按照等比例进行缩放,并显示在矩形的左上方确保图片会完整显示,矩形的短边会充满

fitCenter:将图片按照等比例缩放,并显示在矩形的中间(确保图片会完整显示,矩形的短边会充满)。ImageView的默认状态

fitEnd:据图片按照等比例缩放,并显示在矩形的右下方(确保图片会完整显示,矩形的短边会充满)

fitStart、fitCenter、fitEnd三种缩放的方式都一样,只是显示的位置不同。无论缩小还是放大,都必须要保证,矩形的短边能被充满。

center:不做任何缩放操作,将图片按照原来的大小居中显示,超出ImageView大小部分被截断,注意是从两边等分截断。

如果图片大小小于ImageView大小,则居中显示。(图片可能部分显示

centerCrop:将图片按照等比例缩放,并截取缩放后的中间部分显示在ImageView中。(使得图片的高等于View的高,使得图片宽等于或大于View的宽)(图片可能部分显示

centerInside:将图片大小大于ImageView的图片进行等比例缩小,直到整幅图能够居中显示在ImageView中,小于ImageView的图片不变,直接居中显示。(图片完整显示

centerInside和fitCenter最主要的区别是,当ImageView大小大于图片大小时候,centerInside直接显示图片原大小,而fitCenter,则会放大图片,使得图片能够充满矩形的短边。