有時候,咱們爲了在一個ImageView中顯示不一樣的圖片,每每會使用:
if (條件1)
{
image.setBackground(R.id.xxx1);
}
else if (條件2)
{
image.setBackground(R.id.xxx2);
}
else if ...
其實咱們能夠使用另外一個簡便的方法實現相同的功能
首先,在res/drawable下創建一個xml文件,內容以下
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0" android:drawable="@drawable/battery_0" />
<item android:maxLevel="1" android:drawable="@drawable/battery_1" />
<item android:maxLevel="2" android:drawable="@drawable/battery_2" />
<item android:maxLevel="3" android:drawable="@drawable/battery_3" />
<item android:maxLevel="4" android:drawable="@drawable/battery_4" />
</level-list>
而後在layout中把image view的src設置成已建立好的xml文件
程序中變換圖片時,只須要使用
imageview.getDrawable().setLevel(1);
或者imageview.setImageLevel(1);
...
Android會根據level的值自動選擇對應的圖片。手機顯示剩餘電量就是用這個方法來顯示不一樣圖片的 android
使用LevelDrawable注意幾點: xml
一、默認的level爲0,若是沒有和0匹配的level,那麼就不顯示。 圖片
二、level匹配以maxLevel優先。即若是有個item,min:1,max:2。 另外一份item,min:2,max:3。 get
若是此時設置level=2,那麼會匹配第一個item。 it