最近做项目,要下载图片到本地(不是指缓存),之前用过HttpURLConnection和HttpCLient,但是感觉太繁琐,而且6.0之后到Apache包也不支持了,后来我想到了Picasso的缓存,Picasso缓存图片,那肯定是下载到本地实现了,我们只要更改下本地路径,就能轻松实现了。
废话不多说,直接上代码了。
private void download() {
//获得图片的地址
String url = mList.get(mPosition);
//Target
Target target = new Target(){
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
String imageName = System.currentTimeMillis() + ".png";
File dcimFile = FileUtil
.getDCIMFile(FileUtil.PATH_PHOTOGRAPH,imageName);
LogCat.i("bitmap="+bitmap);
FileOutputStream ostream = null;
try {
ostream = new FileOutputStream(dcimFile);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, ostream);
ostream.close();
} catch (Exception e) {
e.printStackTrace();
}
Toast.makeText(PicActivity.this,"图片下载至:"+dcimFile,Toast.LENGTH_SHORT).show();
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};