天天看點

同一個ImageView顯示不同的圖檔--->level-list

有時候,我們為了在一個ImageView中顯示不同的圖檔,往往會使用: 

if (條件1)

  image.setBackground(R.id.xxx1); 

}

else if (條件2)

  image.setBackground(R.id.xxx2); 

} ... 

可以用另一個簡便的方法實作相同的功能 

首先,在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().setImageLevel(1);

... 

Android會根據level的值自動選擇對應的圖檔。手機顯示剩餘電量就是用這個方法來顯示不同圖檔的。