dynamic设置ImageView的源码android

我在我的场景中有一个ImageView,我想根据用户inputdynamic设置源。

假设我在我的可绘制文件夹中有4个图像:aaa.png,bbb.png,ccc.png和ddd.png。

当我的应用程序加载时,我将图像设置为:aaa.png

myImageView.setImageResource(R.drawable.aaa); 

现在我有一个EditText,用户可以inputbbb,我想将图像源改为bbb.png,或者用户inputccc,将源码更改为ccc.png等。

我怎样才能dynamic地设置setImageResource()中的参数? 我试图玩Drawable对象无济于事…

Solutions Collecting From Web of "dynamic设置ImageView的源码android"

如果你想允许开放的文本input,你将不得不使用原始资源通过string名称(请参阅该页面的旁注)来获取它们,否则使用魔法Javareflection来按名称检索R类的字段。 或者,你可以保留一个HashMap的string为可抽取的整数值并查找它,但是你必须保持这个HashMap。

如果您只希望它显示已经加载到绘图中的图像,则可以使用一个Spinner ,其中项目的id被设置为Drawable的资源。 这对你来说会更容易,对用户也更容易。

如果你想使用reflection看看下面的代码:

  R.drawable ourRID = new R.drawable(); Field photoNameField = ourRID.getClass().getField("aaa"); myImageView.setImageResource(photoNameField.getInt(ourRID)); 

希望能帮助到你。