Android 动态设置ImageView的源
我的场景中有一个ImageView,我想根据用户输入动态设置其源 假设我的可绘制文件夹中有4幅图像:aaa.png、bbb.png、ccc.png和ddd.png 当我的应用程序加载时,我将图像设置为:aaa.pngAndroid 动态设置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()中动态设置参数?
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文件中的常量,就可以了。