Android 使用level-list改变对应的状态图片

Android 使用level-list改变对应的状态图片

为了实现这种效果
这里写图片描述
其中的☀图片是根据状态变化的,
以前的做法:

if(条件1){
    image.setBackground(R.id.xxx1);
}else if(条件2){
    image.setBackground(R.id.xxx2);
}else if(条件3){
    image.setBackground(R.id.xxx3);
}

这种写法费时费力还不好维护,这里记下另一个实现方法:
在res/drawable下创建一个 mode_level.xml 文件,


<level-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/icon_heat" android:maxLevel="1"/>
    <item android:drawable="@drawable/icon_cool" android:maxLevel="2"/>
level-list>

布局layout_xxx.xml文件中这样写:

android:src="@drawable/mode_level"

使用的时候:

imageview.getDrawable().setLevel(1);

android会根据level的值自动选择对应的图片。

你可能感兴趣的:(android)