//显示图片
Glide.with(context).load(ApiService.HOST + imgUrl)
.skipMemoryCache(true)//跳过内存缓存
.diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
.into(mIvCode);
//子线程下载图片
mIvCode.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
new Thread() {
public void run() {
try {
Bitmap myBitmap = Glide.with(context)
.asBitmap()
.skipMemoryCache(true)//跳过内存缓存
.diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
.load(ApiService.HOST + imgUrl)
.submit(Target.SIZE_ORIGINAL,Target.SIZE_ORIGINAL).get();
Bitmap bitmap = Bitmap.createBitmap(myBitmap, 0, 0, myBitmap.getWidth(), myBitmap.getHeight());
Log.e("wwww", bitmap.toString());
saveImageToGallery(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
return false;
}
});
public void saveImageToGallery(Bitmap bmp) {
if (bmp == null) {
Log.e(TAG, "bitmap---为空");
return;
}
String galleryPath = Environment.getExternalStorageDirectory()
+ File.separator + Environment.DIRECTORY_DCIM
+ File.separator + "Camera" + File.separator;
String fileName = +System.currentTimeMillis() + ".jpg";
File file = new File(galleryPath, fileName);
try {
FileOutputStream fos = new FileOutputStream(file);
//通过io流的方式来压缩保存图片
boolean isSuccess = bmp.compress(Bitmap.CompressFormat.JPEG, 60, fos);
fos.flush();
fos.close();
//保存图片后发送广播通知更新数据库
Uri uri = Uri.fromFile(file);
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri));
if (isSuccess) {
runOnUiThread(new Runnable() {
@Override
public void run() {
ToastUtil.showShortToast("保存成功");
}
});
Log.e(TAG, "图片保存成功 保存在:" + file.getPath());
} else {
Log.e(TAG, "图片保存失败");
}
} catch (IOException e) {
Log.e(TAG, "保存图片找不到文件夹");
e.printStackTrace();
}
}