Android ImageView根据标签设置图像

Juk*_*rpa 1 android android-imageview android-resources

我想知道Android中是否有任何方法可以ImageView动态设置图像tag.

理想情况下会是这样的:

// 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>
Run Code Online (Sandbox Code Playgroud)

而简单地调用ImageViewsetTag()与我想要的价值的方法.

我试过这个,但它不起作用.有没有干净的方式做在资源文件中的图像选择(的东西比别的state_selected,state_pressed等)?

God*_*hen 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>
Run Code Online (Sandbox Code Playgroud)

然后setLevel(...)在代码中使用来设置一个级别.