Android ImageView的setImageLevel和level-list使用簡介
阿新 • • 發佈:2019-01-28
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-listxmlns:android="http://schemas.android.com/apk/res/android">
- <itemandroid:maxLevel="0"android:drawable="@drawable/p0"/>
- <itemandroid:maxLevel="1"android:drawable="@drawable/p1"/>
- <itemandroid:maxLevel="2"android:drawable="@drawable/p2"/>
-
<itemandroid:maxLevel
- <itemandroid:maxLevel="4"android:drawable="@drawable/p3"/>
- </level-list>
q.xml:
- <level-listxmlns:android="http://schemas.android.com/apk/res/android">
- <itemandroid:maxLevel="0"android:drawable="@drawable/q0"/>
-
<itemandroid:maxLevel
- <itemandroid:maxLevel="2"android:drawable="@drawable/q2"/>
- <itemandroid:maxLevel="3"android:drawable="@drawable/q3"/>
- <itemandroid: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);