图文讲解Android的ImageView类中的ScaleType属性设置

2019-12-10 18:41:13丽君

把图片按比例扩大/缩小到View的宽度,居中显示

Android,ImageView,ScaleTypeAndroid,ImageView,ScaleType

5. FIT_START, FIT_END在图片缩放效果上与FIT_CENTER一样,只是显示的位置不同,FIT_START是置于顶部,FIT_CENTER居中,FIT_END置于底部。
在此就不给出示例了。
6. FIT_XY
不按比例缩放图片,目标是把图片塞满整个View。

Android,ImageView,ScaleTypeAndroid,ImageView,ScaleType

 

实现图片宽度100%ImageView宽度且高度按比例自动伸缩
在ListView中为了实现图片宽度100%适应ImageView容器宽度,让高度自动按比例伸缩功能,查了很多资料,搞了一下午都没找出个现成的办法,不过貌似有个结论了,就是:
Android自身不能实现这样的效果,只有自己动手丰衣足食
使用scaleType 属性,设置图片在 view 中的缩放方式,本来以为 fit_center 可以实现,结果很无语,莫名其妙,没能实现宽度贴合容器宽度,两侧都是空白区域。
解决方法:
1.  还是要利用 scaleType 的  center_crop 效果,让图片能始终按比例填充容器,不留空白区域。
2.  剩下最主要的功能就是动态设置 ImageView 容器的高度了,这样让图片能尽可能的完整展现出来,而且还可以实现 maxHeight 的效果,如果图片高度比例过大不至于把列表拉的太长。

int maxHeight = ZUI.dp2px(mContext, 300); 
int height = (int) ((float) view.getWidth()/drawable.getMinimumWidth() * drawable.getMinimumHeight()); 
if (height > maxHeight) height = maxHeight; 
view.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, height));