如何将位图添加到电话库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将位图添加到电话库?相关的知识,希望对你有一定的参考价值。

我正在开发图像编辑App,我需要在android的Gallery中保存Edited Image,以便用户可以访问并使用它。

我已经尝试通过查看stackoverflow将Bitmap存储到外部存储中。但是像OnePlus5这样的Android手机没有外置存储。所以,我尝试将图像存储在手机的内部存储中使用此代码。哪个看起来很完美,因为它返回Log中存储的Image的路径。在代码位图中是编辑图像的位图。

        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。保存的图像也不会出现在图库中的任何位置。在搜索之后,我知道只有app,即存储的图像本身,才能访问存储在内部存储器中的图像,用户无法访问它。那么,即使Android手机没有外部存储,我该怎么办才能将Bitmap Image直接保存到图库中。我在任何地方都找不到任何答案。

答案

每个设备都有外部存储。可能是您理解错误,因为Android手机上的外部存储并不意味着存储卡上的内存。它意味着每个电话公司提供的内存,如8GB,16GB,32GB等。因此,您需要将该图像保存在外部存储上,之后您可以将该图像添加到图库中。

请参阅下面的链接,本教程的某些部分可帮助您存储图像并将其添加到图库。

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

以上是关于如何将位图添加到电话库?的主要内容,如果未能解决你的问题,请参考以下文章

合并两个位图的问题

如何正确地将多个片段添加到片段过渡?

如何将回收器视图添加到片段

如何在android中使用imageloader释放位图内存?

android-如何从标记位图开始共享元素过渡?

如何将按钮功能添加到片段中