在android中使用json检索图像

时间:2015-02-17 15:28:28

标签: android json

我正在尝试构建一个Android应用程序。我想使用JSON从网站(.php)中检索数据。到目前为止,我能够获得最近的帖子的标题,URL和相应的内容,但我如何检索该特定帖子的图像?谢谢。

这是代码的一部分:

private TextView techPostCount, techPostTitle, techPostUrl, techPostContent, techPostAuthor 

private ImageView techImages;

.
.
.

int jsonArrLength = jsonMainNode.length();

            for(int i=0; i < jsonArrLength; i++) {

                JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
                String postTitle = jsonChildNode.getString("slug");
                String postUrl = jsonChildNode.getString("url");
                String postContent=jsonChildNode.getString("content");
                String postImage=jsonChildNode.getString("author");

                techcPostCount.setText("Number of posts:" +postCount);
                techPostTitle.setText("Page :" +postTitle);
                techPostUrl.setText("Page URL:" +postUrl);
                techPostContent.setText("Article:"+ postContent);

                techclinchPostImage?????("Picture:"+ ????);

2 个答案:

答案 0 :(得分:2)

要从URI显示ImageView中的图片,您必须先下载图片,然后将下载的图片放入ImageView

或者您可以考虑使用Picasso让它为您完成所有这些工作

// context here can be the Activity or its application context
Picasso.with(context)
    .load(postImage)
    .into(techclinchPostImage);

答案 1 :(得分:0)

您可以在单独的主题中下载图像

 private class LoadImage extends AsyncTask<String, String, Bitmap> {
            ImageView img=null;
            public LoadImage(ImageView img){
                this.img=img;
            }
            @Override
            protected void onPreExecute() {
                super.onPreExecute();

            }
            protected Bitmap doInBackground(String... args) {
                Bitmap bitmap=null;
                try {
                    bitmap = BitmapFactory.decodeStream((InputStream)new URL(args[0]).getContent());
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return bitmap;
            }
            protected void onPostExecute(Bitmap image) {
                if(img != null && image != null){
                    img.setImageBitmap(image);
                }
            }
        }`

将上述代码添加到您的项目中。你就这样称呼它

 ImageView techclinchPostImage =findViewbyId....
 new LoadImage(techclinchPostImage).execute("Your URL");