美文网首页
android保存图片成功后图库里却找不到图片

android保存图片成功后图库里却找不到图片

作者: 阳光的nick_lxz | 来源:发表于2018-01-12 16:18 被阅读0次

    1,情况说明
    明明在文件管理器找得到图片,但是在手机系统的图库/相册里却找不到。
    原因:文件虽然保存了,但是图库没有刷新。
    解决办法:保存文件成功后通过发送广播来通知图库刷新。
    最靠谱的解决办法
    先把图片插入到系统图库中,再通知图库更新。
    注意这里传了文件的绝对路径 file1.getAbsolutePath())

      MediaStore.Images.Media.insertImage(context.getContentResolver(),
                        filePhth,fileName , null);
                context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + file1.getAbsolutePath())));
    

    前面为什么说最靠谱。因为你可能在用这个,大部分手机这个方法一样可行,但是我用荣耀4c不行(被这个坑了近两个小时)

    context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+ Environment.getExternalStorageDirectory())))
    

    下面附上完整的保存图方法。

    /**
         * 保存位图到本地
         * @param bitmap
         * @param path   本地路径
         * @return void
         */
        public void SavaImage(Bitmap bitmap, String path) {
            File file = new File(path);
            Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            Uri uri = Uri.fromFile(file);
            intent.setData(uri);
            context.sendBroadcast(intent);
            FileOutputStream fileOutputStream = null;
            String filePhth;
            String fileName;
            //文件夹不存在,则创建它
            if (!file.exists()) {
                file.mkdir();
            }
            try {
                filePhth=path + "/" + System.currentTimeMillis() + ".png";
                fileName=System.currentTimeMillis()+"";
                File file1=new File(filePhth);
                fileOutputStream = new FileOutputStream(file1.getPath());
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);
                fileOutputStream.close();
                //图片路径
    //            MediaStore.Images.Media.insertImage(context.getContentResolver(),
    //                    filePhth,fileName , null);
                MediaStore.Images.Media.insertImage(context.getContentResolver(), bitmap, "", "");
                context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + file1.getAbsolutePath())));
                Log.d("aaa",file1.getAbsolutePath()+"-----"+path);
    //            context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
            } catch (Exception e) {
                ToastUtil.showToast("保存失败");
                e.printStackTrace();
            }
        }
    
    

    相关文章

      网友评论

          本文标题:android保存图片成功后图库里却找不到图片

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