2

我在我的 Android 应用程序中创建并保存图像:

File dir = new File(Environment.getExternalStorageDirectory(), ".myappname/saved");
File imageFile = new File(dir, "IMG" + random() + ".jpg");
FileOutputStream out = new FileOutputStream(imageFile);
bi.compress(Bitmap.CompressFormat.JPEG, 100, out);

图像不会出现在图库中——即使重新启动后也是如此。

更新:我只显示部分代码!我还更正了我在编写 StackOverFlow 消息时引入的拼写错误。图像保存得很好——我可以查看它们——它们只是没有显示在图库中。我刚刚从“.myappname”中删除了这个点——画廊没有显示图像。奇怪的。正如我在下面所说,其他应用程序将图像保存在点文件夹中,并显示在图库中:(

4

4 回答 4

1

您正在通过在文件夹名称前加上“。”来创建隐藏文件夹。(句点)媒体扫描仪将忽略这一点。至少这是我在手动执行相同操作时看到的行为,我没有通过代码尝试过。查看这篇文章中的选项 2 http://www.makeuseof.com/tag/hide-private-picture-folders-gallery-android/

于 2012-06-05T09:11:47.590 回答
1

将文件保存在 SDCARD/“某些文件夹 r”上,它将反映在图库中,图库应用程序不显示来自私人空间的图像。更改以下代码行

 File fwdir = new File(Environment.getExternalStorageDirectory(), "myappname/saved");

编辑:- 删除。从目录名称。因为它将是隐藏文件夹。

于 2012-06-05T09:00:08.300 回答
0

你目前的问题是。出现在文件路径中,使其隐藏,但在某些情况下,
画廊不会从私人空间填充图像,
因此请使用代码


sendBroadcast(new Intent( Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
在你的方法中onDestroy()`。
检查此链接
http://rajareddypolam.wordpress.com/2013/01/29/android-saving-file-to-external-storage/

于 2013-10-14T18:37:49.160 回答
0

在您的活动中编写此功能...

私人无效扫描文件(字符串路径){

        MediaScannerConnection.scanFile(MainActivity.this,
                new String[] { path }, null,
                new MediaScannerConnection.OnScanCompletedListener() {

                    public void onScanCompleted(String path, Uri uri) {
                        Log.i("TAG", "Finished scanning " + path);
                    }
                });
    }

然后在保存图像的位置调用此函数

scanFile(yourFile.getAbsolutePath());
于 2018-01-31T12:34:02.023 回答