动态设置ImageView的源码

时间:2010-08-18 20:45:30

标签: android user-interface imageview

我的场景中有一个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对象无济于事......

3 个答案:

答案 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));

希望它有所帮助。