2016-04-03 19 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(); 
      } 
     } 
    } 
相关问题