同一個ImageView顯示不一樣的圖片的技巧

有時候,咱們爲了在一個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

相關文章
相關標籤/搜索