我使用此方法转换我的位图文件,然后将这些图像放在数据库中。但我希望这个文件夹“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;
}
答案 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();
}
}
}