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声明Convert
Name.jpg
to
Name.png
。您能解释一下为什么这是必要的吗?android不支持jpg吗?这不是问题,但我很好奇。
image
定义了吗?请包括完整的相关代码。编辑了这篇文章以包含ImageView声明Convert
Name.jpg
to
Name.png
。你能解释一下为什么这是必要的吗?android不支持jpg吗?这不是一个问题,但我很好奇。etcI希望图像的名称是一个包含图像名称的变量
setImageDrawable
Drawable
作为参数。not
int
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我编辑了我的答案来获取资源名称。