2013-04-22 102 views
1

我想知道在Android中是否有任何方式通过使用其tag来动态设置ImageView的图像。Android ImageView根据标签设置图像

理想情况下是这样的:

// image_view_style.xml 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:tag="1" 
     android:drawable="@drawable/image_for_tag_1"/> 
    <item android:tag="2" 
     android:drawable="@drawable/image_for_tag_2"/> 
    <item android:tag="3" 
     android:drawable="@drawable/image_for_tag_3"/> 
</selector> 

,只需调用ImageViewsetTag()方法与我想要的值。

我试过这个,但它不起作用。是否有任何干净的方式来做资源文件中的图像选择(除了state_selected,state_pressed等)?

回答

7

我认为你可以使用LevelListDrawable达到你想要的东西:

https://developer.android.com/reference/android/graphics/drawable/LevelListDrawable.html

从文档:

<level-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:maxLevel="0" android:drawable="@drawable/ic_wifi_signal_1" /> 
<item android:maxLevel="1" android:drawable="@drawable/ic_wifi_signal_2" /> 
<item android:maxLevel="2" android:drawable="@drawable/ic_wifi_signal_3" /> 
<item android:maxLevel="3" android:drawable="@drawable/ic_wifi_signal_4" /> 
</level-list> 

然后使用setLevel(...)在代码中设置的水平。

+0

很好的答案.... – Blackbelt 2013-04-22 10:39:04

+0

正是我需要的,非常感谢。 – Jukurrpa 2013-04-22 10:47:41