android - 如何从 JSON 数组动态地将图像添加到 ImageView

标签 android arrays drawable android-imageview

我想从存储在 JSON 文件中的链接向我的 iamgeview 添加图像,如下所示:

{
"parts":[
    {"name": "Bosch Iridium",

        ...
        ...
        ...

        "image": "R.drawable-hdpi.plug_boschi"
    },

现在我 zipper 接并用这段代码显示它:

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 数组获取链接的部分的帮助,以便我可以显示它。

最佳答案

您需要先从 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);

关于android - 如何从 JSON 数组动态地将图像添加到 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13455908/

相关文章:

android - ListView 中一行的背景图像

android - TransitionDrawable 不考虑填充?

Android 矩形不工作

未打印出程序的返回值时计算的字符串长度不正确

c - 我现在正在学习如何使用数组,并且正在努力完成我的分配,以制作乘法表并获得平均值

java - 将 std::max 转换为 Java

android - GradientDrawable 类的 innerRadiusRatio 和 thicknessRatio 之间存在什么样的联系?

android - 运行其他方法后等待完成代码

android - 删除旧 map 标记并在集群管理器中加载新 map 标记

java - 有关将数据库集成到 Android 应用程序的最佳方式的一般查询