2016-04-03 20 views
0

我使用這種方法來轉換我的位圖文件,然後把這些圖像uri放在數據庫中。但我希望這個文件夾「my_app」不會顯示在畫廊中。我該怎麼辦?! 任何解決方案免除使用媒體?隱藏我的應用程序圖片(使用.nomedia)

public File bitmapConvertToFile(Bitmap bitmap){ 
    FileOutputStream fileOutputStream = null; 
    File bitmapFile = null; 
    try { 
      File file = new File(Environment.getExternalStorageDirectory()+"/my_app/"); 
     if (!file.exists()){ 
      file.mkdir(); 
     } 
     bitmapFile = new File(Environment.getExternalStorageDirectory()+"/my_app/"+"today_picture.jpg"); 
     fileOutputStream = new FileOutputStream(bitmapFile); 
     bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream); 
     MediaScannerConnection.scanFile(this, new String[]{bitmapFile.getAbsolutePath()}, null, new MediaScannerConnection.MediaScannerConnectionClient() { 
      @Override 
      public void onMediaScannerConnected() { 

      } 

      @Override 
      public void onScanCompleted(String path, Uri uri) { 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         Toast.makeText(CropImage.this,"saved", Toast.LENGTH_LONG).show(); 
        } 
       }); 
      } 
     }); 
    } 
    catch (Exception e){ 
     e.printStackTrace(); 
    } 
    finally { 
     if (fileOutputStream != null){ 
      try { 
       fileOutputStream.flush(); 
       fileOutputStream.close(); 
      } 
      catch (Exception e){ 

      } 
     } 
    } 
    return bitmapFile; 
} 

回答

1

而不是使用

File file = new File(Environment.getExternalStorageDirectory()+"/my_app/"); 

使用

File file = new File(getFilesDir()+"/my_app/"); 

的這樣做是可以節省的應用程序,以便它不能被除了你的任何其他應用程序來訪問內部文件。

因此您的bimap的文件將

bitmapFile = new File(getFilesDir()+"/my_app/"+"today_picture.jpg"); 
0

爲此,您需要保存石化公司內部存儲。 我用過這個,這對我很有用。

public void saveProfilePic(Context context, Bitmap bitmap) { 
     if (bitmap != null) { 
      try { 
       FileOutputStream out = new FileOutputStream(context.getFilesDir().getPath() + "/user_pic.png/"); 
       bitmap.compress(Bitmap.CompressFormat.PNG, 100, out); 
       out.close(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
相關問題