我有一个包含大量图片的应用程序。由于图片数量较多,所以将全部图片保存在 SD 卡中。主要问题是图片在画廊中可用。我想要一种从图库中隐藏图片的方法,但必须可用于我的应用程序。
我确实在文件名前添加了“.”以使其隐藏,但图像也未显示在可能的应用程序中!
任何人..帮助..请
谢谢..
Gallery 处理它知道的所有媒体文件,因此如果您希望它远离您的资产,您有两种解决方案。首先,将.nomedia
文件添加到包含您的图像的文件夹中,画廊应该跳过它(大多数图像查看器会尊重.nomedia
,但不能保证)。其他解决方案是使用一些自己的专有文件格式,因此 Gallery 或其他工具将无法处理它。.nomedia
如果这是足够的解决方案,我会推荐。
将 .nomedia 文件添加到图像文件夹中。重要的是,当您添加 .nomedia 文件时,该文件夹应该是空的。如果文件夹中包含添加“.nomedia”文件之前的一些图像,图库不会隐藏这些图像,它会隐藏“.nomedia”文件之后添加的图像。所以添加到图像文件夹的第一个文件应该是“.nomedia”。
希望dis对你有帮助
谢谢,
这行代码可以在您的目录中添加 .nomedia 文件,并使您的图像从图库中隐藏
字符串 NOMEDIA=".nomedia";
文件夹 = 新文件(Environment.getExternalStorageDirectory() + "/mydir"); if(Folder.mkdir()) { nomediaFile = new File(Environment.getExternalStorageDirectory() + "/mydir/"+ NOMEDIA); if(!nomediaFile.exists()){ nomediaFile.createNewFile(); } }
我认为保存图像的位置很重要,请尝试将它们保存到应用程序缓存目录或文件目录中。
您可以使用 :getCacheDir()
在您的活动中访问缓存目录。和你的文件目录:getFilesDir()
这两个目录不能被任何其他应用程序(期望您的应用程序)可见或访问,
我在我的应用程序中使用资产来实现这一点。