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
文件,
<?xml version="1.0" encoding="utf-8"?>
<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的值自动选择对应的图片。