如何从字符串获取可绘制内容?

时间:2019-06-12 11:16:40

标签: java android

我在R类中有一个值可绘制位置的字符串,如下所示:

String myString = "R.drawable.ic_web_server"

我想将其值分配给一个整数。

我尝试了Integer.parseString(myString),但是它返回null int。有什么建议吗?

5 个答案:

答案 0 :(得分:4)

首先删除前缀"R.drawable."

String s = myString.replace("R.drawable.", "");

,然后使用drawable获取getIdentifier()的整数ID:

int id = context.getResources().getIdentifier(s, "drawable", context.getPackageName());

context是您必须提供的有效Context,或者如果代码在活动中,则可以忽略它:

int id = getResources().getIdentifier(s, "drawable", getPackageName());

答案 1 :(得分:1)

您可以这样做

String value= String.valueOf(R.drawable.ic_web_server);

因此您将拥有资源的ID,然后可以使用like

imageView.setImageResource(Integer.parseInt(value));

无需转换为字符串。我们可以直接通过整数来完成

int value= R.drawable.ic_web_server;
imageView.setImageResource(value);

答案 2 :(得分:0)

尝试

Integer.parseInt(myString);     

您正在使用parseString的位置。您也可以尝试使用valueOf

答案 3 :(得分:0)

使用以下代码:

int i = R.drawable.ic_web_server;

代替:

String myString = "R.drawable.ic_web_server"

OR

String myString = String.valueOf(R.drawable.ic_web_server);

答案 4 :(得分:0)

您无法以字符串形式获取可绘制图像 因为它返回int 直接用于从imageview中的drawable设置图像

 imageview.setImageDrawable(getResources().getDrawable(R.drawable.logo));