我当前项目的一部分是从 URL 下载图像然后保存到 SDCard。但问题是SD卡中保存的所有图像都显示在Android图库页面中。我想要的是“我不想将所有保存的图像都保存在Android图库中。”
添加“.nomedia”文件。不工作?尝试第二个选项。
将文件保存到以“.”开头的文件夹,例如
/sdcard/.myimages/
您可以使用以下代码创建 .nomedia 文件:
String NOMEDIA=".nomedia";
File Folder = new File(Environment.getExternalStorageDirectory() + "/mydir");
if(Folder.mkdir()) {
nomediaFile = new File(Environment.getExternalStorageDirectory() + "/mydir/"+ NOMEDIA);
if(!nomediaFile.exists()){
nomediaFile.createNewFile();
}
}
我找到了一个简单的方法(我想是的)。
在 'Android' 文件夹(其中存在数据和 obb 文件夹)中创建一个文件夹,并将您的媒体(图片、视频等)放入您创建的文件夹中。
图库应用程序会忽略该“Android”文件夹。简单:-)
太晚了,我知道其他答案已经完成,但我认为放置 .nomedia 文件会使该特定文件夹中的所有图片隐藏:
只需以编程方式更改图像文件的扩展名,这样图库就无法将其检测为图像。例如,如果您的图像是 “pic1.jpg”,请将其重命名为“pic1.aaa”; 当你想再次显示它时,再次重命名它
我使用了三种方法:
.TafheemReels
.falseExtension
文件路径看起来像:
/storage/emulated/0/Download/.TafheemReels/mypicture.falseExtension
保存方法:
public static void saveImageToDownloadStorage(Context mContext, Bitmap bitmap, String fileName) {
class saveThread extends Thread {
@Override
public void run() {
super.run();
FileOutputStream outStream = null;
File outFile;
try {
outFile = reelImagePath ( fileName);
outStream = new FileOutputStream(outFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.flush();
outStream.close();
MediaScannerConnection.scanFile(mContext, new String[]{outFile.getPath()}, new String[]{"image/jpeg"}, null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
saveThread thread = new saveThread();
thread.setDaemon(true);
thread.start();
}
public static File reelImagePath (String fileName){
String root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString() + "/.TafheemReels";
File dir = new File(root);
if (!dir.exists()) {
dir.mkdirs();
}
String filename = String.format("%s.falseExtension", fileName);
File outFile = new File(dir, filename);
return outFile ;
}
还有毕加索的图像:
File localPath = reelImagePath("mypicture");
Uri uri = Uri.fromFile(localPath);
Picasso.with(mContext).cancelRequest(imageView);
Picasso.with(mContext).load(uri).into(imageView);
这样我发现Picasso根本不看文件扩展名。
您的图像文件将永远隐藏在图库应用程序中。