2016-10-27 45 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

您可以通過編輯文件的名稱,加入不知名的格式,如「實例」做那麼它不會出現在畫廊

相關問題