Android-图片AppCompatImageView(ImageView)自适应比例

描述
在课程首页开发过程中,遇到一个问题,课程标签需要固定高度,宽度自适应,当时没有实现出来,现在从 同事@吴锋 处了解到,这个可以轻松实现,此处记录一下,下次遇到类似需求可以应用

控件:
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