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" />


只需将
添加为文件夹或文件名的前缀。更改文件扩展名。简单。谢谢。这与缓存有什么区别?