2016-10-27 112 views
0

我有一个聊天应用程序,我需要保存用户发送的图像接收。对于图像用户发送我将其保存到图片文件夹中,像这样下载图像并保存它们,但不希望它们在图库中

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; 
} 

但对于图像的用户接收我要保存的图片,但我不希望图像可查看在画廊如何做那工作?

感谢

+0

只需将'.'作为前缀添加到文件夹或文件名。 – Piyush

+0

更改文件扩展名。简单。 –

+0

谢谢,这和缓存有什么区别? –

回答

1

使用下面的方法来隐藏画廊

媒体
/* 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_EXTERNAL_STORAGE许可。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
0

您可以通过编辑文件的名称,加入不知名的格式,如“实例”做那么它不会出现在画廊

相关问题