我的场景中有一个ImageView,我想根据用户输入动态设置源码。
假设我的drawable文件夹中有4张图片:aaa.png,bbb.png,ccc.png和ddd.png。
当我的应用程序加载时,我将图像设置为:aaa.png
myImageView.setImageResource(R.drawable.aaa);
现在我有一个EditText,用户可以在其中键入bbb,我想将图像源更改为bbb.png,或者用户输入ccc,将源更改为ccc.png等。
如何在setImageResource()中动态设置参数?我尝试使用Drawable对象无济于事......
答案 0 :(得分:2)
如果您想允许打开文本输入,您必须使用raw assets按字符串名称获取它们(请参阅该页面上的旁注),或者使用神奇的Java reflection来检索R类的字段名称。或者,您可以将字符串的HashMap保留为R.drawable整数值并查找它,但是您必须维护该hashmap。
答案 1 :(得分:0)
如果您只希望它显示您在drawable中加载的图像,则可以使用Spinner
,其中项目的ID设置为Drawable
的资源。这对您来说更容易,对用户来说也更容易。
答案 2 :(得分:0)
如果您想使用反射,请查看下面的代码:
R.drawable ourRID = new R.drawable();
Field photoNameField = ourRID.getClass().getField("aaa");
myImageView.setImageResource(photoNameField.getInt(ourRID));
希望它有所帮助。