复制代码代码如下:
最終ファイルImageFile = new File(getCachedir()。getPath() + "/img/" + p.image);
image.setVisibility(view.gone);
view.findviewbyid(r.id.imageloading).setVisibility(view.visible);
(new asynctask <void、void、bitmap>(){
@オーバーライド
保護されたビットマップdoinbackground(void ... params){
試す {
ビットマップ画像;
if(!imagefile.exists()|| imagefile.length()== 0){
画像= bitmapfactory.decodestream(new URL(
「http://example.com/images/」
+ p.image).openstream());
image.compress(bitmap.compressformat.jpeg、85、
new FileOutputStream(ImageFile));
image.recycle();
}
画像= bitmapfactory.decodefile(imagefile.getPath()、
bitmapoptions);
画像を返します。
} catch(malformedurlexception ex){
// TODO自動生成キャッチブロック
ex.printstacktrace();
nullを返します。
} catch(ioException ex){
// TODO自動生成キャッチブロック
ex.printstacktrace();
nullを返します。
}
}
@オーバーライド
Protected void onpostexecute(bitmap image){
if(view.gettag()!= p)//ビューはリサイクルされました。
戻る;
view.findviewbyid(r.id.imageloading).setVisibility(
view.gone);
view.findviewbyid(r.id.image)
.SetVisibility(View.Visible);
((ImageView)View.FindViewByID(R.ID.IMAGE))
.setImageBitMap(画像);
}
})。実行する();