轉載一篇比較實用的不同狀態得圖片顯示方法
版權聲明:本文爲Zhang Phil原創文章,歡迎轉載!轉載請註明出處:http://blog.csdn.net/zhangphil
Android ImageView的setImageLevel和level-list使用簡介
在Android開發中,有時候需要對一個ImageView設置很多不同圖片以表示某種應用狀態,比如,典型的是手機的信號強度從強到弱有多種狀態圖;wifi有解鎖和未解鎖狀態,解鎖和未解鎖狀態的圖標也是很多種。如果每次都一一的通過ImageView設置圖片的src來達到這一目的,實在是太過於繁瑣,且維護和管理起來不便。因此,引入ImageView的setImageLevel和level-list實現這一目的。
比如圖中有10種不同類型的手機信號表示狀態圖標icon:
那就先分類寫兩個level-list:p.xml和q.xml(都位於drawable目錄下)
p.xml:
- <level-list xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:maxLevel="0" android:drawable="@drawable/p0" />
- <item android:maxLevel="1" android:drawable="@drawable/p1" />
- <item android:maxLevel="2" android:drawable="@drawable/p2" />
- <item android:maxLevel="3" android:drawable="@drawable/p3" />
- <item android:maxLevel="4" android:drawable="@drawable/p3" />
- </level-list>
q.xml:
- <level-list xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:maxLevel="0" android:drawable="@drawable/q0" />
- <item android:maxLevel="1" android:drawable="@drawable/q1" />
- <item android:maxLevel="2" android:drawable="@drawable/q2" />
- <item android:maxLevel="3" android:drawable="@drawable/q3" />
- <item android:maxLevel="4" android:drawable="@drawable/q4" />
- </level-list>
然後,如果意圖使一個ImageView顯示 q3 的圖標,那麼通過這樣的代碼就可以實現:
- ImageView image=(ImageView)findViewById(R.id.image);
- image.setImageResource(R.drawable.q);
- image.setImageLevel(3);