天天看點

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:

<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);           

繼續閱讀