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




發佈了20 篇原創文章 · 獲贊 18 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章