我正在开展一个项目,我只需要在应用程序内存中保存图像和视频(不在SD卡或设备库中)。我正在使用下面的代码。但这也将图像/视频保存到设备库。请指教。
Bitmap bm;
View v=imageview;
v.setDrawingCacheEnabled(true);
bm=Bitmap.createBitmap(v.getDrawingCache());
v.setDrawingCacheEnabled(false);
String fileName="image.png";
try
{
FileOutputStream fOut=openFileOutput(fileName, MODE_PRIVATE);
bm.compress(Bitmap.CompressFormat.PNG, 100, fOut);
}
catch (Exception e)
{
e.printStackTrace();
}
我希望将图片和视频设为私密且安全。所以我想将它们保存在应用内部存储器中。所以没有其他应用可以访问它。请建议。
答案 0 :(得分:3)
将图像存储在内存中,它会将图像存储在内部图像文件夹中。
Uri uriSavedImage;
// the temp folder to start the camera activity with
String fileName = "image_" + String.valueOf(imageNum)+ ".png";
path = getDir("images", Context.MODE_WORLD_WRITEABLE).getPath() + "/" + fileName;
// start the camera activity
file = new File(path);
while (file.exists()) {
imageNum++;
fileName = "image_" + String.valueOf(imageNum)+ ".png";
path = getDir("images_pho",Context.MODE_WORLD_WRITEABLE).getPath()+ "/" + fileName;
file = new File(path);
}
Uri ur = Uri.parse(file.toString());
uriSavedImage = Uri.fromFile(file);
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
OutputStream imageFileOS;
try {
imageFileOS = getContentResolver().openOutputStream(uriSavedImage);
imageFileOS.write(data);
imageFileOS.flush();
imageFileOS.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
希望它的帮助
答案 1 :(得分:0)
正如我告诉你的那样,你可以将从相机拍摄的照片存储在内部存储器中,然后立即用getContentResolver().delete(uri, null, null);
从库中删除拍摄的图像,或者你可以使用它:
if (takenpicturefile.exists())
if (takenpicturefile.delete())
Log.d("tag","filedeleted");
有关详细信息,您可能需要参考this。希望它有所帮助。