Android 用于检索图像的JSON
我使用JSON来检索用户数据,同时也获取图像URL,但是如何显示图像而不是URL呢?目前它只显示图像中的URL 代码如下:Android 用于检索图像的JSON,android,json,url,Android,Json,Url,我使用JSON来检索用户数据,同时也获取图像URL,但是如何显示图像而不是URL呢?目前它只显示图像中的URL 代码如下: StringBuilder tweetResultBuilder = new StringBuilder(); try { //get JSONObject from result JSONObject resultObject = new JSONObject(result);
StringBuilder tweetResultBuilder = new StringBuilder();
try {
//get JSONObject from result
JSONObject resultObject = new JSONObject(result);
//get JSONArray contained within the JSONObject retrieved - "results"
JSONArray tweetArray = resultObject.getJSONArray("results");
//loop through each item in the tweet array
for (int t=0; t<tweetArray.length(); t++) {
//each item is a JSONObject
JSONObject tweetObject = tweetArray.getJSONObject(t);
//get the username and text content for each tweet
tweetResultBuilder.append(tweetObject.getString("from_user")+": ");
tweetResultBuilder.append(tweetObject.get("profile_image_url")+"\n");
tweetResultBuilder.append(tweetObject.get("text")+"\n\n");
}
}
StringBuilder tweetResultBuilder=new StringBuilder();
试一试{
//从结果中获取JSONObject
JSONObject resultObject=新的JSONObject(结果);
//获取检索到的JSONObject中包含的JSONArray-“结果”
JSONArray tweetArray=resultObject.getJSONArray(“结果”);
//循环浏览tweet数组中的每个项目
对于(int t=0;t您应该首先下载并兑现您的图像。
请阅读这篇文章,并检查
从url显示图像的较短方式:
new DownloadImageTask((ImageView) findViewById(R.id.imageView1))
.execute("http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png");
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
new DownloadImageTask((ImageView)findViewById(R.id.imageView1))
.执行(”http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png");
私有类DownloadImageTask扩展了AsyncTask{
图像视图bmImage;
公共下载ImageTask(ImageView bmImage){
this.bmImage=bmImage;
}
受保护位图doInBackground(字符串…URL){
字符串urldisplay=url[0];
位图mIcon11=null;
试一试{
InputStream in=newjava.net.URL(urldisplay.openStream();
mIcon11=BitmapFactory.decodeStream(in);
}捕获(例外e){
Log.e(“Error”,e.getMessage());
e、 printStackTrace();
}
返回mIcon11;
}
受保护的void onPostExecute(位图结果){
bmImage.setImageBitmap(结果);
}
}
试试这个
try {
ImageView i = (ImageView)findViewById(R.id.image);
Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());
i.setImageBitmap(bitmap);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
您需要从您获得的url下载图像
为此,你需要做以下事情
ImageView my_image = (ImageView) findViewById(R.id.my_imageView);
String image_url = "http://www.clker.com/cliparts/1/d/7/e/12570918991185627521Ramiras_Earth_small_icon.svg.med.png";
Bitmap bm = getImageFromServer(image_url);
my_image.setImageBitmap(bm);
这将调用以下函数来下载图像
private Bitmap getImageFromServer(String image_url) {
Bitmap bm = null;
try {
URL aURL = new URL(image_url);
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
} catch (IOException e) {
Log.e("DEBUGTAG", "Remtoe Image Exception", e);
}
return bm;
}
就这样。希望这对你有所帮助
谢谢。坏主意…这将以NetworkOnMainThreadException结束…在Android>=3.0上,您可以尝试。我尝试了上面的代码,但它没有显示任何图像,我认为它试图从所有用户获取图像,而代码只为一个用户显示。@OlympicBeast您可以使用位图数组并从循环中为多个用户存储图像。@OlympicBeast如果我给出的解决方案帮助您解决问题,那么您可以接受我的回答。谢谢。有没有比上面解释的方法更短的方法?因为我是通过JSON获取URL的,所以只需要将其转换为在ImageView上显示。