有時候,我們為了在一個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>
Android相關內容:
- JavaScript的indexOf()用法
- C#的IndexOf用法
- Android上傳bitmap圖片至Web的方法
- Android實現重啟和關機的工具類
- 五種控制Android應用的許可權的方法
然後在layout中把image view的src設定成已建立好的xml檔案
程式中變換圖片時,只需要使用
imageview.getDrawable().setLevel(1);
或者imageview.setImageLevel(1);
...
Android會根據level的值自動選擇對應的圖片。手機顯示剩餘電量就是用這個方法來顯示不同圖片的
使用LevelDrawable注意幾點:
1、預設的level為0,如果沒有和0匹配的level,那麼就不顯示。
2、level匹配以maxLevel優先。即如果有個item,min:1,max:2。 另一份item,min:2,max:3。
如果此時設定level=2,那麼會匹配第一個item。