1. 程式人生 > >Android ImageView的setImageLevel和level-list使用簡介

Android ImageView的setImageLevel和level-list使用簡介

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:

  1. <level-listxmlns:android="http://schemas.android.com/apk/res/android">
  2.     <itemandroid:maxLevel="0"android:drawable="@drawable/p0"/>
  3.     <itemandroid:maxLevel="1"android:drawable="@drawable/p1"/>
  4.     <itemandroid:maxLevel="2"android:drawable="@drawable/p2"/>
  5.     <itemandroid:maxLevel
    ="3"android:drawable="@drawable/p3"/>
  6.     <itemandroid:maxLevel="4"android:drawable="@drawable/p3"/>
  7. </level-list>


q.xml:

  1. <level-listxmlns:android="http://schemas.android.com/apk/res/android">
  2.     <itemandroid:maxLevel="0"android:drawable="@drawable/q0"/>
  3.     <itemandroid:maxLevel
    ="1"android:drawable="@drawable/q1"/>
  4.     <itemandroid:maxLevel="2"android:drawable="@drawable/q2"/>
  5.     <itemandroid:maxLevel="3"android:drawable="@drawable/q3"/>
  6.     <itemandroid:maxLevel="4"android:drawable="@drawable/q4"/>
  7. </level-list>

然後,如果意圖使一個ImageView顯示 q3 的圖示,那麼通過這樣的程式碼就可以實現:

  1. ImageView image=(ImageView)findViewById(R.id.image);  
  2.         image.setImageResource(R.drawable.q);  
  3.         image.setImageLevel(3);