美文网首页
Android直接把当前View保存到相册

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

作者: 忘尘And | 来源:发表于2017-05-27 10:00 被阅读0次

    最近做一个需求,就是把点击一个商品,弹出一个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()))));}

    相关文章

      网友评论

          本文标题:Android直接把当前View保存到相册

          本文链接:https://www.haomeiwen.com/subject/rfnffxtx.html