换种方法显示不同图片

有时候,我们为了在一个image view中显示不同的图片,往往会使用:

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

最近发现可以用另一个简便的方法实现相同的功能

首先,在res/drawable下建立一个xml文件,内容如下
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:maxLevel="0" android:drawable="@android:color/transparent" />
    <item android:maxLevel="1" android:drawable="@drawable/image_1" />
    <item android:maxLevel="2" android:drawable="@drawable/image_2" />
    <item android:maxLevel="3" android:drawable="@drawable/image_3" />
</level-list>

然后在layout中把image view的src设置成已创建好的xml文件
程序中变换图片时,只需要使用
imageview.getDrawable().setLevel(0) - 透明
imageview.getDrawable().setLevel(1) - 显示image_1
...

以此类推,好像显示剩余电量就是用这个方法来显示不同图片的

你可能感兴趣的:(xml)