android - 如何使用本地资源的名称字符串设置 ImageView 避免资源的条件映射

标签 android android-imageview android-resources

我想以编程方式设置一个 ImageView,将本地资源可绘制对象的名称作为字符串传递。

drawable 显然是以这种方式识别的 int

 R.drawable.mydrawable_name

如果不在条件开关中映射所有内容,我该如何解决这个问题?

我想避免这种形式的东西

if(myString.equal"stringname_1"){
   myImageview.setImageResource( R.drawable.stringname_1);
}
else if(myString.equal"stringname_1")....
etc

最佳答案

为此,您可以使用 getResources().getIdentifier()(http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String,java.lang.String,java.lang.String))。对于您的代码,它看起来像这样:

int id = getResources().getIdentifier(myString, "drawable", getPackageName());
Drawable drawable = getResources().getDrawable(id);
myImageview.setImageDrawable(drawable);

上面的代码假设你在一个 Activity 中。

关于android - 如何使用本地资源的名称字符串设置 ImageView 避免资源的条件映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17454374/

相关文章:

android - Scrollview 中的 TextView 中的超链接在 Android 中不可点击?..解决方案是什么?

java - 如何决定runable的顺序

android - 将 ImageView 置于中心,宽度和高度为父宽度的一半?

android - 编辑 dimens.xml 的工具 (Android)

android - 如何使Gradle覆盖库项目中的资源

android-studio - Android Studio“从layout.xml编辑字符串资源值,而不切换到strings.xml

android - 我如何在android上设置防抖(图像稳定器)的相机功能

php - 你好,我正在查询数据库

android - 如何在 android 中使用 Piccaso 图像加载库平滑图像加载?

java - 在 AsyncTask 中改造调用