我在JSON
文件中存储了图像名称(例如“Image1.png”)。我使用JSONParser
得到了这个名字。但问题是我无法在ImageView
中显示该图像。
这是我写的代码:
ImageView imageView = (ImageView)findViewById(R.id.imageViewer);
for (int i = 0; i < posts.length(); i++) {
JSONObject c = posts.getJSONObject(i);
String varImage = c.getString(TAG_IMAGE);
int resId = getResources().getIdentifier(varImage, "drawable" , getPackageName());
imageView.setImageResource(resId);
//code to add data in hash map
}
答案 0 :(得分:1)
您可以使用以下代码获取可绘制ID:
try {
Class res = R.drawable.class;
Field field = res.getField("drawableName"); //Here you put your image name getting from json file
int drawableId = field.getInt(null);
}
catch (Exception e) {
Log.e("MyTag", "Failure to get drawable id.", e);
}
获取drawable id后,您可以将drawable设置为ImageView。
答案 1 :(得分:1)
这必须奏效。
ImageView imageView = (ImageView)findViewById(R.id.imageViewer);
for (int i = 0; i < posts.length(); i++) {
JSONObject c = posts.getJSONObject(i);
String varImage = c.getString(TAG_IMAGE).substring(0, c.getString(TAG_IMAGE).lastIndexOf('.');
int resId = getResources().getIdentifier(varImage, "drawable" , getPackageName());
imageView.setImageResource(resId);
//code to add data in hash map
}
答案 2 :(得分:0)
尝试使用以下代码,让我知道它对您有用。
imageview= (ImageView)findViewById(R.id.imageView);
for (int i = 0; i < posts.length(); i++) {
String varImage = c.getString(TAG_IMAGE);
String uri = "@drawable/"+ "varImage";
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
Drawable res = getResources().getDrawable(imageResource);
imageView.setImageDrawable(res);
}