Android 下载图像并保存它们,但不希望它们出现在库中
我有一个聊天应用程序,我需要保存用户发送和接收的图像。对于用户发送的图像,我将其保存到图像文件夹中,如下所示Android 下载图像并保存它们,但不希望它们出现在库中,android,image,download,Android,Image,Download,我有一个聊天应用程序,我需要保存用户发送和接收的图像。对于用户发送的图像,我将其保存到图像文件夹中,如下所示 private void imageDownload(final String url){ Picasso.with(getContext()) .load(url) .into(getTarget(url)); } //target to save private static Target getTarget(final
private void imageDownload(final String url){
Picasso.with(getContext())
.load(url)
.into(getTarget(url));
}
//target to save
private static Target getTarget(final String url){
Target target = new Target(){
@Override
public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
new Thread(new Runnable() {
@Override
public void run() {
File heyJudeFile = new File(Environment.getExternalStorageDirectory().getPath() + "/Hey Jude");
if (!heyJudeFile.exists()){
heyJudeFile.mkdirs();
}
localProfilePictureAdress = Environment.getExternalStorageDirectory().getPath() + "/Hey Jude" + "/" + url.substring(url.lastIndexOf("/")+1);
File file = new File(localProfilePictureAdress);
try {
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, ostream);
ostream.flush();
ostream.close();
} catch (IOException e) {
Log.e("IOException", e.getLocalizedMessage());
}
}
}).start();
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
return target;
}
但是对于用户收到的图像,我想保存图像,但不希望图像在库中可见,这是如何工作的
谢谢您可以通过编辑文件名并添加未知格式,如“.example”,这样它就不会出现在多媒体资料中使用下面的方法从多媒体资料中隐藏媒体
/* To Hide media file in gallery */
public void createNoMedia(String myDir){
File noMediaFile = new File(myDir, ".nomedia");
if (!noMediaFile.exists()) {
try {
noMediaFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/* To use this */
dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/MyImages/";
File newDir = new File(dir);
newDir.mkdirs();
createNoMedia(dir);
在manifest.xml中
您还需要WRITE\u EXTERNAL\u STORAGE
权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
只需将
添加为文件夹或文件名的前缀。更改文件扩展名。简单。谢谢。这与缓存有什么区别?