描述
在课程首页开发过程中,遇到一个问题,课程标签需要固定高度,宽度自适应,当时没有实现出来,现在从 同事@吴锋 处了解到,这个可以轻松实现,此处记录一下,下次遇到类似需求可以应用
控件:
AppCompatImageView(ImageView)
属性:
android:adjustViewBounds
属性值:
布尔值(boolean)
<attr name="adjustViewBounds" format="boolean" />
使用目的:
加载图片时,固定宽度,高度按比例自适应,或固定高度,宽度自适应
使用前提:
宽高有且仅有一个设置为 “wrapContent”
build.gradle中设置targetSdkVersion23以上
defaultConfig {
targetSdkVersion 23
}
代码动态设置:
imgView.setAdjustViewBounds(true);
相关源码
@android.view.RemotableViewMethod
public void setAdjustViewBounds(boolean adjustViewBounds) {
mAdjustViewBounds = adjustViewBounds;
if (adjustViewBounds) {
setScaleType(ScaleType.FIT_CENTER);
}
}
这里可以看出,设置了 android:adjustViewBounds="true" 之后,scaleType默认就设置成了“ScaleType.FIT_CENTER”,所以在xml文件中不需要再设置scaleType了
END