發表文章

目前顯示的是 七月, 2012的文章

LevelListDrawable的使用

在開發Battery Widget時,需要在不同電量狀態下顯示對應的圖檔,比如電量100%時顯示電池全滿的圖,電量50%的時候顯示電池半滿的圖。那時很單純的用一堆 if else 來判斷,然後在裡面分別setImageResource()。當然這樣結果也是OK,但看到程式碼裡一堆判斷式,就覺得有點討厭。最近發現原來Android早就有替類似的需求設計了LevelListDrawable,而且是Since: API Level 1。(我真是太不用功了@@)

用法很簡單,範例如下:
1.首先當然得先準備好不同Level的圖檔。
2.在res/drawable 裡新增一個battery_level.xml 內容如下:
<level-list xmlns:android="http://schemas.android.com/apk/res/android">     <item android:maxLevel="20" android:drawable="@drawable/battery_20" />     <item android:maxLevel="40" android:drawable="@drawable/battery_40" />     <item android:maxLevel="60" android:drawable="@drawable/battery_60" />     <item android:maxLevel="80" android:drawable="@drawable/battery_80" />     <item android:maxLevel="100" android:drawable="@drawable/battery_100" /> </level-list> 可以看出是用<level-list>標籤來包<item>,而每個<item>中分別指定數值範圍及圖檔。
3.在La…