如何使用本地资源的名称String设置ImageView,避免资源的条件映射

And*_*eaF 1 android android-imageview android-resources

我想以编程方式设置ImageView,将本地资源的名称作为String传递.

通过这种方式清楚地识别出可绘制的内容

 R.drawable.mydrawable_name
Run Code Online (Sandbox Code Playgroud)

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

我想避免这种形式的东西

if(myString.equal"stringname_1"){
   myImageview.setImageResource( R.drawable.stringname_1);
}
else if(myString.equal"stringname_1")....
etc
Run Code Online (Sandbox Code Playgroud)

mne*_*and 11

你可以使用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);
Run Code Online (Sandbox Code Playgroud)

上面的代码假设您在一个Activity中.