我在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消息时引入的拼写错误。图像保存得很好 - 我可以查看它们 - 它们只是不在Gallery中显示。 我刚从“.myappname”中删除了点 - 没有图库显示图像。奇怪。正如我在下面说的,其他应用程序将图像保存在点文件夹中,并在图库中显示:(
答案 0 :(得分:1)
将文件保存在SDCARD /“some folde r”上它将反映在图库中,Gallery应用程序不会显示来自私人空间的图像。更改代码行以下
File fwdir = new File(Environment.getExternalStorageDirectory(), "myappname/saved");
编辑: - 删除。从目录名称。因为它将被隐藏文件夹。
答案 1 :(得分:1)
您正在通过在文件夹名称前加上“。”来创建隐藏文件夹。 (期间)媒体扫描仪会忽略这一点。至少这是我手动做同样的行为我没有通过代码尝试过。 请查看此帖http://www.makeuseof.com/tag/hide-private-picture-folders-gallery-android/
中的选项2答案 2 :(得分:0)
你当前的问题是。出现在文件路径中,使其隐藏但在某些情况下,
图库不会填充私人空间的图像
所以使用代码
sendBroadcast(new Intent( Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
在 onDestroy()
方法`中。
检查此链接
答案 3 :(得分:0)
在您的活动中写下此功能......
private void scanFile(String path){
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());