發表文章

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

LevelListDrawable 的使用

在開發 Battery Widget 時,需要在不同電量狀態下顯示對應的圖檔,比如電量 100% 時顯示電池全滿的圖,電量 50% 的時候則顯示半滿的圖。那時很單純的用一堆 if else 來判斷,然後在裡面分別 setImageResource()。當然這樣也不是不行,但看到程式碼裡一堆判斷式,就覺得有點討厭。最近發現原來 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> …