Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 用于检索图像的JSON_Android_Json_Url - Fatal编程技术网

Android 用于检索图像的JSON

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);

我使用JSON来检索用户数据,同时也获取图像URL,但是如何显示图像而不是URL呢?目前它只显示图像中的URL

代码如下:

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上显示。