如何让Android ImageView逐步下载图像
我正在构建一个应用程序,可以下载和显示多个图像。一切进展顺利 但我希望它下载后立即显示图像。下载完成后就不会了。我很确定这叫做交错,因为我用PNG 这是我下载并显示图像的部分代码:如何让Android ImageView逐步下载图像,android,image,Android,Image,我正在构建一个应用程序,可以下载和显示多个图像。一切进展顺利 但我希望它下载后立即显示图像。下载完成后就不会了。我很确定这叫做交错,因为我用PNG 这是我下载并显示图像的部分代码: private class DownloadTask extends AsyncTask<String, Integer, Bitmap> { @Override protected void onPostExecute(Bitmap result) { ivG
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,然后解码流(即使它不完整),然后像从流中读取一样执行,并将其存储在缓冲区中 您可以使用来获取流,逐步复制字节数组中的内容(如果需要,将其增长),然后使用来获取解码的部分位图(当然,如果数据足够) 你甚至可以用它作为缓冲区 注意不要经常这样做,因为这可能会大大降低速度