我想从存储在JSON文件中的链接向我的iamgeview添加一个图像,如下所示:
{
"parts":[
{"name": "Bosch Iridium",
...
...
...
"image": "R.drawable-hdpi.plug_boschi"
},
现在我拉链接并使用以下代码显示它:
try {
jObject = new JSONObject(sJSON.substring(sJSON.indexOf('{')));
JSONArray pluginfo = jObject.getJSONArray("parts");
JSONObject e = pluginfo.getJSONObject(position);
String imagefile = e.getString("image");
Drawable image = getDrawable(imagefile);
ImageView itemImage = (ImageView) findViewById(R.id.item_image);
itemImage.setImageDrawable(image);
} catch (JSONException e) {
e.printStackTrace();
}
}
我很确定这部分是正确的
ImageView itemImage = (ImageView) findViewById(R.id.item_image);
itemImage.setImageDrawable(image);
但我需要帮助以上部分从JSON数组获取链接,以便我可以显示它。
答案 0 :(得分:10)
您需要首先从JSON中包含的字符串中获取资源ID。
String imagefile = e.getString("image");
String resName = imagefile.split("\\.")[2]; // remove the 'R.drawable.' prefix
int resId = getResources().getIdentifier(resName, "drawable", getPackageName());
Drawable image = getResources().getDrawable(resId);
答案 1 :(得分:0)
您要做的是查看Resources课程。
getIdentifier (String name, String defType, String defPackage);
因此,基本上解析对象以找到文本plug_boschi
,然后调用:
int resid=Context.getResources().getIdentifier ("plug_boschi", "drawable", null);