Android从网址性能加载图片

时间:2012-05-15 06:33:26

标签: android

我有经典的AsyncTask来加载图片:

private class DownloadImageTask extends AsyncTask<String,Void,Bitmap> {

    Bitmap  bitmap = null;

    @Override
    protected Bitmap doInBackground(String... str) {
        try{   

            InputStream in = new java.net.URL(picture).openStream();
            bitmap = BitmapFactory.decodeStream(new SanInputStream(in));
            //viewPicture.setImageBitmap(bitmap);
            viewPicture.setBackgroundDrawable(new BitmapDrawable(bitmap));


        }
        catch(Exception e){
            e.printStackTrace();
        }
        return bitmap;
    }
}

但是加载图像的时间很长。当我开始这个活动时,除了图像之外,所有东西都被加载,只有等了一秒钟后我才能看到它。有什么问题?

2 个答案:

答案 0 :(得分:1)

简单...因为打开与资源URL的连接并下载所有必需字节需要时间。此外,性能也可能因Internet连接速度而异。

答案 1 :(得分:1)

viewPicture.setBackgroundDrawable(new BitmapDrawable(bitmap));

应该在UI线程上,在AsyncTask的onPostExecute方法中完成。

此外,关闭你使用的流(如果!null)和try / catch的一个漂亮的finally块。

不要担心时间,这是要走的路。