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

时间:2017-12-15 17:59:02

标签: android image file bitmap android-gallery

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

我试图通过查看stackoverflow将Bitmap存储到外部存储中。但某些Android手机如OnePlus5 没有外部存储。所以,我尝试将图像存储在手机的内部存储中使用此代码。哪个看起来很完美,因为它返回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手机没有外部存储,则直接。我无论如何都找不到任何答案。

1 个答案:

答案 0 :(得分:2)

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

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

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