从Json获取数据(图像)

时间:2015-03-22 16:21:49

标签: android json

我正在为Android制作一个博客阅读器,问题是我是一个新的编程人员。试图从Json获取数据。我是为字符串数据做的("标题","作者"),但我不知道如何为图像做这些("缩略图") 。我的问题是:如何添加"缩略图"在listView的左侧部分" title"和"作者"。

  {
      "id": 109,
      "url": "http://integrallab.ru/index.php/categorii-so-statyami/2013-10-25-13-26-29/3-ideas",
      "title": "Article title",
      "date": "2015-03-17 09:21:43",
      "author": "Nikolai Boiko",
      "thumbnail": "http://integrallab.esy.es/pic/3_things.jpg"
    },

代码是:

...

  private final String KEY_TITLE = "title";
    private final String KEY_AUTHOR = "author";

.....

private void handleBlogResponse() {
        mProgressBar.setVisibility(View.INVISIBLE);
        if (mBlogData == null) {
            updateDisplayForError();

    } else {
        try {
            JSONArray jsonPosts = mBlogData.getJSONArray("posts");
            ArrayList<HashMap<String, String>> blogPosts =
                    new ArrayList<HashMap<String, String>>();
            for (int i=0; i<jsonPosts.length(); i++){
                JSONObject post = jsonPosts.getJSONObject(i);
                String title = post.getString(KEY_TITLE);
                title = Html.fromHtml(title).toString();
                String author = post.getString(KEY_AUTHOR);
                author = Html.fromHtml(author).toString();

                HashMap<String, String> blogPost = new HashMap<String, String>();
                blogPost.put(KEY_TITLE, title);
                blogPost.put(KEY_AUTHOR, author);

                blogPosts.add(blogPost);
            }

          String[] keys = { KEY_TITLE, KEY_AUTHOR };
            int[] ids = { android.R.id.text1, android.R.id.text2 };
            SimpleAdapter adapter = new SimpleAdapter(this, blogPosts,
                    android.R.layout.simple_list_item_2, keys,ids);
            setListAdapter(adapter);
        } catch (JSONException e) {
            logException(e);
        }
    }

感谢您的关注!

2 个答案:

答案 0 :(得分:0)

除非您有充分理由自己这样做,否则请查看gson

Gson是一个Java库,可用于将Java对象转换为JSON表示。它还可用于将JSON字符串转换为等效的Java对象。 Gson可以处理任意Java对象,包括你没有源代码的预先存在的对象。

答案 1 :(得分:0)

当您获得图像的网址时。只需拍摄一张imageView。例如:

ImageView logo = (ImageView) rootView.findViewById(R.id.logo);

这些代码块可能有效:

       try {
                // Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(" http://corporate2.bdjobs.com/21329.jpg").getContent());
                Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(m.getLogo()).getContent());
                //  http://corporate2.bdjobs.com/21329.jpg
                logo.setImageBitmap(bitmap);
                //convertView.setBackgroundResource(R.drawable.cardlayout);

            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }