复制代码代码如下:
最终文件imageFile = new File(getCachedir()。getPath() +“/img/” + p.image);
image.setvisisibil(view.gone);
view.findViewById(r.id.imageloading).setVisibilible(view.ibil);
(新的asynctask <void,void,bitmap>(){
@Override
受保护的位图doinbackground(void ... params){
尝试 {
位图图像;
if(!imagefile.exists()|| imagefile.length()== 0){
image = bitmapfactory.decodestream(new url(new url)(
“ http://example.com/images/”
+ p.image).opstream());
image.compress(bitmap.compressformat.jpeg,85,
新的fileOutputStream(imageFile));
image.recycle();
}
image = bitmapfactory.decodefile(imagefile.getPath(),
位图);
返回图像;
} catch(Malformedurlexception ex){
// TODO自动生成的捕获块
ex.printstacktrace();
返回null;
} catch(ioexception ex){
// TODO自动生成的捕获块
ex.printstacktrace();
返回null;
}
}
@Override
受保护的void onpostexecute(bitmap image){
if(view.getTag()!= p)//视图被回收。
返回;
view.findviewbyid(r.id.imageloading).setvisibility(
view.gone);
view.findviewbyid(r.id.image)
.setvisisible(View.ible);
((imageView)view.findviewbyid(r.id.image))
.setImageBitMap(image);
}
})。执行();