如何让Android ImageView逐步下载图像

如何让Android ImageView逐步下载图像,android,image,Android,Image,我正在构建一个应用程序,可以下载和显示多个图像。一切进展顺利 但我希望它下载后立即显示图像。下载完成后就不会了。我很确定这叫做交错,因为我用PNG 这是我下载并显示图像的部分代码: private class DownloadTask extends AsyncTask<String, Integer, Bitmap> { @Override protected void onPostExecute(Bitmap result) { ivG

我正在构建一个应用程序,可以下载和显示多个图像。一切进展顺利

但我希望它下载后立即显示图像。下载完成后就不会了。我很确定这叫做交错,因为我用PNG

这是我下载并显示图像的部分代码:

    private class DownloadTask extends AsyncTask<String, Integer, Bitmap> {

    @Override
    protected void onPostExecute(Bitmap result) {
        ivGambar.setImageBitmap(result);// ivGambar is an ImageView

        pbDetail.setVisibility(View.INVISIBLE);

    }

    @Override
    protected Bitmap doInBackground(String... pa) {
        try {
            return BitmapFactory.decodeStream((InputStream) new URL(pa[0])
                    .getContent());
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
}
私有类下载任务扩展了异步任务{
@凌驾
受保护的void onPostExecute(位图结果){
setImageBitmap(结果);//ivgabar是一个ImageView
pbDetail.setVisibility(View.INVISIBLE);
}
@凌驾
受保护位图背景(字符串…pa){
试一试{
返回BitmapFactory.decodeStream((InputStream)新URL(pa[0])
.getContent());
}捕获(格式错误){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
}
它可以在安卓系统中完成吗?怎么用?
谢谢。

我不太清楚,但您可以尝试逐步读取URL,然后解码流(即使它不完整),然后像从流中读取一样执行,并将其存储在缓冲区中

您可以使用来获取流,逐步复制字节数组中的内容(如果需要,将其增长),然后使用来获取解码的部分位图(当然,如果数据足够)

你甚至可以用它作为缓冲区

注意不要经常这样做,因为这可能会大大降低速度