我想知道在 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>
只需使用我想要的值调用 ImageView
的 setTag()
方法即可。
我试过了,但没用。有什么干净的方法可以在资源文件中进行图像选择(除了 state_selected
、state_pressed
等)吗?
最佳答案
我认为你可以使用 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(...)
来设置级别。
关于Android ImageView 根据标签设置图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16144923/