複製代碼代碼如下:
最終文件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);
}
})。執行();