Android ImageView 根据标签设置图片

标签 android android-imageview android-resources

我想知道在 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_selectedstate_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/

相关文章:

android - 如何在 AOSP 中按名称查找 Android 模块?

android - 如何在 Parse.com android 上获取 objectId

android - 如何在android中使用EasyMock

android - 使用 SVG 转换为矢量到 imageview

android.content.res.Resources$NotFoundException : File res/mipmap-xhdpi-v4/ic_copyright_black_24dp. png 来自 xml 类型 xml 资源 ID #0x7f0d0007

java - 如何将资源 ID 作为参数传递;没有空指针异常

Android: Intent.EXTRA_ALLOW_MULTIPLE 只允许单次采摘

Android Studio,根据另一个 Activity 的 int 值设置文本可见性

android - 将位图设置为背景并裁剪它

android - 从 refs.xml 引用默认布局