-1

我正在使用 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");
            }
        }
4

3 回答 3

3

您应该先下载并兑现您的图像。请阅读这篇文章高效显示位图,并查看示例应用程序

从 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);
    }
}
于 2012-12-04T12:25:55.783 回答
0

试试这个

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();
}
于 2012-12-04T12:27:19.250 回答
0

您需要从您获得的网址下载图像。

为此,您需要做以下事情。

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

就是这样。希望这对您有所帮助。

谢谢。

于 2012-12-04T12:33:38.733 回答