如何将位图添加到 Phone 的画廊?

How to add a Bitmap to the Gallery of Phone?

我正在开发图像编辑应用程序,我需要将编辑后的图像保存在 Android 的图库中,以便用户可以访问和使用它。

我试图通过查找 Whosebug 将位图存储到外部存储中。但是一些Android手机像OnePlus5没有外部存储。因此,我尝试使用此代码将图像存储在 phone 的内部存储中。看起来很完美,因为它 returns 日志中存储图像的路径。在代码位图中是编辑图像的位图。

        ContextWrapper wrapper = new ContextWrapper(getApplicationContext());
        File file = wrapper.getDir("Images", MODE_PRIVATE);
        file = new File(file, "DemoImg2"+ ".jpg");
        try {
            OutputStream stream = null;
            stream = new FileOutputStream(file);
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
            stream.flush();
            stream.close();

        }
        catch (IOException e){
            e.printStackTrace();
        }

        Uri savedImagePath = Uri.parse(file.getAbsolutePath());

        Toast.makeText(getApplicationContext(), savedImagePath.toString(), Toast.LENGTH_LONG).show();
        Log.i("Path:", savedImagePath.toString());

但我无法从文件管理器的任何地方找到 /data/user/0/com.packagename.blurd1/app_Images/DemoImg2.jpg。 Saved Image 也不会出现在 Gallery 中的任何地方。经过搜索,我知道只有存储图像本身的应用程序才能访问存储在内部存储器中的图像,而用户无法访问它。那么我应该怎么做才能 save Bitmap Image into gallery Directly even if android phone does没有外部存储。我在任何地方都找不到任何答案。

每个设备都有外部存储。可能您理解错误,因为 Android phones 上的外部存储并不意味着存储卡上的内存。这意味着每个 phone 公司提供的内存,如 8GB、16GB、32GB 等。因此,您需要将该图像保存在外部存储设备上,稍后您可以将该图像添加到您的画廊。

参见下面的 link,本教程的某些部分帮助您存储图像并将它们添加到图库。

https://developer.android.com/training/camera/photobasics.html