【问题标题】:STORING IMAGE using MediaStore.Images.media to save in a particular folder使用 MediaStore.Images.media 存储图像以保存在特定文件夹中
【发布时间】:2020-12-22 19:15:54
【问题描述】:

我必须在特定文件夹中保存位图。如果没有创建文件夹,我想创建它。

我知道你可以像这样保存图像:

 MediaStore.Images.Media.insertImage(getContentResolver(), bitmap,       
                 bitmap + ".jpg Card Image", bitmap + ".jpg Card Image");

但是如何将它保存在特定位置,例如“MediaStore/folder”(实际上不知道路径应该如何),其中文件夹是我要创建的文件夹(如果未创建)。

我已经尝试了很多东西,但它们都不起作用,所以如果有人可以帮助我,我将非常感激!

【问题讨论】:

    标签: java android mediastore


    【解决方案1】:

    如果您愿意不使用 MediaStore,您可以像这样使用内部存储

    void saveBitmap(Bitmap bitmap) {
        File dir = getFilesDir(); // or getCacheDir()
        if (!new File(dir + "/folderName").isDirectory()) {
            if (new File(dir + "/folderName").mkdir()) { // directory made successfully
                dir = new File(dir + "/folderName/" + "fileName.ext");
            } else { // error making the directory
                return;
            }
        } else {
            dir = new File(dir + "/folderName/" + "fileName.ext");
        }
    
        try {
            FileOutputStream fileOutputStream = new FileOutputStream(dir);
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
            fileOutputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    

    检索位图

    Bitmap loadBitmap(File dir) {
        Bitmap bitmap = null;
        try {
            FileInputStream fileInputStream = new FileInputStream(dir);
            bitmap = BitmapFactory.decodeStream(fileInputStream);
            fileInputStream.close();
        } catch(Exception e) {
            e.printStackTrace();
        }
    
        return bitmap;
    }
    

    【讨论】:

    • 这个文件夹存放在哪里?
    • 在应用程序的数据目录中。这意味着该文件夹将在应用程序卸载时被删除。
    • 我可以将数据放在用户可以访问的地方吗?如果应用程序被卸载,文件夹不会被删除?
    • 不使用这种方法,没有。卸载应用程序时数据将被删除,因为 getFilesDir() 和 getCacheDir() 返回的目录特定于该应用程序。
    猜你喜欢
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2013-05-27
    • 1970-01-01
    • 2021-02-18
    • 2022-08-10
    相关资源
    最近更新 更多