Java 如何以编程方式绘制特定的可绘制资源?
我的可绘制资源中有一组图像。现在,我希望能够通过Java 如何以编程方式绘制特定的可绘制资源?,java,android,Java,Android,我的可绘制资源中有一组图像。现在,我希望能够通过image.setImageResource(R.id.name\u of\u image)以编程方式相应地更改占位符图像 我的ImageView定义为ImageView image=findViewById(R.id.placeholder) 我该怎么做?我尝试了getIdentifier,但没有成功 图像的格式为Name.jpg 编辑: 我目前有以下结构: int resID = getResources().getIdentifier(nam
image.setImageResource(R.id.name\u of\u image)
以编程方式相应地更改占位符图像
我的ImageView定义为ImageView image=findViewById(R.id.placeholder)代码>
我该怎么做?我尝试了getIdentifier
,但没有成功
图像的格式为Name.jpg
编辑:
我目前有以下结构:
int resID = getResources().getIdentifier(name.toLowerCase(), "drawable", this.getPackageName());
ImageView image = findViewById(R.id.placeholder);
image.setImageResource(resID);
我已将图像名称更改为小写,现在它是一个png文件。您的图像必须为png格式(android更喜欢),并且必须仅包含小写字母和数字([a-z0-9_.])。
然后你可以用
image.setImageResource(R.drawable.name_of_image);
您可以通过以下方式获取可绘制表格的名称:
String name = context.getResources().getResourceEntryName(R.drawable.name_of_image);
要获取具有字符串名称的可绘制文件,请执行以下操作:
int id = context.getResources().getIdentifier("name_of_image", "drawable", context.getPackageName());
image.setImageResource(id);
您的图像必须是png格式(android更喜欢),并且必须只包含小写字母和数字([a-z0-9.])。
然后你可以用
image.setImageResource(R.drawable.name_of_image);
您可以通过以下方式获取可绘制表格的名称:
String name = context.getResources().getResourceEntryName(R.drawable.name_of_image);
要获取具有字符串名称的可绘制文件,请执行以下操作:
int id = context.getResources().getIdentifier("name_of_image", "drawable", context.getPackageName());
image.setImageResource(id);
image
是如何定义的?请包含完整的相关代码。编辑帖子以包含ImageView声明ConvertName.jpg
toName.png
。您能解释一下为什么这是必要的吗?android不支持jpg吗?这不是问题,但我很好奇。image
定义了吗?请包括完整的相关代码。编辑了这篇文章以包含ImageView声明ConvertName.jpg
toName.png
。你能解释一下为什么这是必要的吗?android不支持jpg吗?这不是一个问题,但我很好奇。etcI希望图像的名称是一个包含图像名称的变量setImageDrawable
Drawable
作为参数。notint
OP已经说过他正在使用:image.setImageResource(R.id.name\u of\u image)
那么你的答案又增加了什么呢?他使用了一个名为无效的jpg,并使用了R.id
@RickTeuthof我编辑了我的答案来获取资源名。我希望图像名为一个变量,包含图像名setImageDrawable
将Drawable
作为参数。而不是int
OP已经说过了他正在使用:image.setImageResource(R.id.name\u of\u image)
那么你的答案又添加了什么呢?他使用了一个带有无效名称的jpg,并使用了R.id
@ricktetuthof我编辑了我的答案来获取资源名称。