Android直接把当前View保存到相册

最近做一个需求,就是把点击一个商品,弹出一个dialog,然后点击保存,把这个dialog保存到相册,一开始了解这个需求,当时想的就是调用系统的截屏,但是考虑到截屏了那多出来的部分不是还得去手动裁剪,天呀,想想都觉得可怕,但是换个角度想想,把view转换成bitmap然后保存貌似也可行,百度知google有缓存view的操作,利用api: setDrawingCacheEnabled(true)和buildDrawingCache()创建缓存;再使用view.getDrawingCache()即可将当前的view转换成bitmap,剩下就是利用流去进行一定的写入即可,ok,贴代码:

Paste_Image.png

写入sd卡并通知图库刷新的操作:
//保存图片
public static void saveImageToGallery(Context mContext, Bitmap bitmap) {
//注意小米手机必须这样获得public绝对路径
File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsoluteFile();
//保存图片的文件夹名
String fileName = "";
File appDir = new File(file, fileName);
if (!appDir.exists()) {
appDir.mkdirs();
}
fileName = System.currentTimeMillis() + ".jpg";
currentFile = new File(appDir, fileName);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(currentFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fos != null)
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}

    // 最后通知图库更新
    mContext.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
            Uri.fromFile(new File(currentFile.getPath()))));}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容