我正在尝试构建一个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:"+ ????);
答案 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");