从图库中隐藏我的应用图片(exect使用.nomedia)

时间:2016-04-03 03:12:37

标签: android

我使用此方法转换我的位图文件,然后将这些图像放在数据库中。但我希望这个文件夹“my_app”不会在图库中显示。我该怎么办?! 任何解决方案都不使用媒体?!

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

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分: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();
            }
        } 
    }