Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 动态设置ImageView的源_Android_User Interface_Imageview - Fatal编程技术网

Android 动态设置ImageView的源

Android 动态设置ImageView的源,android,user-interface,imageview,Android,User Interface,Imageview,我的场景中有一个ImageView,我想根据用户输入动态设置其源 假设我的可绘制文件夹中有4幅图像:aaa.png、bbb.png、ccc.png和ddd.png 当我的应用程序加载时,我将图像设置为:aaa.png myImageView.setImageResource(R.drawable.aaa); 现在我有一个编辑文本,用户可以在其中键入bbb,我想将图像源更改为bbb.png,或者用户输入ccc,将源更改为ccc.png等 如何在setImageResource()中动态设置参数?

我的场景中有一个ImageView,我想根据用户输入动态设置其源

假设我的可绘制文件夹中有4幅图像:aaa.png、bbb.png、ccc.png和ddd.png

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

myImageView.setImageResource(R.drawable.aaa);
现在我有一个编辑文本,用户可以在其中键入bbb,我想将图像源更改为bbb.png,或者用户输入ccc,将源更改为ccc.png等


如何在setImageResource()中动态设置参数?我尝试过摆弄可绘制对象,但没有效果…

如果您只想让它显示您已加载到可绘制对象中的图像,则可以使用
微调器,其中项目的id设置为
可绘制对象的资源。这对您来说更容易,对用户来说也更容易。

如果您想允许打开文本输入,您必须使用按字符串名称获取它们(请参见该页的旁注),或者使用Magic按名称检索R类的字段。或者,您可以保留一个字符串到R.drawable整数值的HashMap并进行查找,但是您必须维护该HashMap。

如果您想使用反射,请查看以下代码:

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

希望它能有所帮助。

我想hashmap就是我最终要做的。但问题是,如果添加了资产,现有资产的整数值是否会改变(增量)?还是会保持不变?你是说资源?R.id会自动重新编译成常量和构建时间,您绝对不应该试图通过硬编码的数字来访问它们。只要使用R.id文件中的常量,就可以了。