如何向imageView显示图片

时间:2014-04-16 08:11:07

标签: android imageview

在我的Android应用程序中,我需要显示一个通过互联网检索的图像,在ImageView中,这是我的代码:

protected String doInBackground(String... thumbURLs) {
    System.out.println("getting image");
    try{
        URL thumbURL = new URL(thumbURLs[0]);
        System.out.println("looking picture "+ thumbURLs[0]);
        URLConnection thumbConn = thumbURL.openConnection(); 
        thumbConn.connect();
        InputStream thumbIn = thumbConn.getInputStream(); 
        BufferedInputStream thumbBuff = new BufferedInputStream(thumbIn);
        itemImage .setImageBitmap(BitmapFactory.decodeStream(thumbBuff));
        System.out.println("do you see the picture?");
        thumbBuff.close(); 
        thumbIn.close();
        }
        catch(Exception e) {
            e.printStackTrace();
        }
    return null;
}

我没有收到任何错误,应用程序从服务器获取图像,但我没有看到它,我错过了什么?

3 个答案:

答案 0 :(得分:3)

您无法在doInBackground中执行UI任务。将图像设置为postExecute()中的图像视图。

itemImage .setImageBitmap(BitmapFactory.decodeStream(thumbBuff));

将此行放在postExecute().

答案 1 :(得分:2)

UI更新部分应仅在Ui线程上完成。所以只需把

itemImage .setImageBitmap(bitmap);

onPostExecute()方法上。你必须从doInBackground返回位图。

答案 2 :(得分:0)

还可以使用onProgressUpdate()回调API来更新doinBackground()内部的UI。

使用publishProgress()启动回调onProgressUpdate()