【发布时间】:2015-09-07 11:17:13
【问题描述】:
我想通过我的应用拍照并将其存储在名为 Medit 的文件夹中。当我的应用程序启动时,它应该能够从该文件夹中提取所有图片并直接显示。因此必须设置数据存储路径并将其存储为应用程序的一部分。这是我到目前为止所做的事情
public void CaptureImage(){
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
mediaStorageDir =new File(Environment.getExternalStorageDirectory(),"MyAppName");
mUri =Uri.fromFile(mediaStorageDir+"IMG"+System.currentTimeMillis() + ".jpg");
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, mUri);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
super.onActivityResult(requestCode, resultCode, data);
Bitmap bm = BitmapFactory.decodeFile(mUri.getPath());
imgVIew.setImageBitmap(bm);
}else Log.d("capture", "FAILED");}
问题是,无论我将 mUri 更改为图片如何,都将使用默认命名约定存储在 DCIM/相机图像中。在 onActivityResult 我正在捕获图像。问题是我无法控制它的存储位置和名称。我需要
1) 通过意图捕获图像,将其存储在具有自定义名称的位置。
2) 应用每次打开都要到同一个存储位置,把图片拉出来一张一张显示。
【问题讨论】:
-
请粘贴您的 onActivityResult
-
刚刚做了。我需要一个访问路径。我使用voidcanvas.com/whatsapp-like-image-compression-in-android 作为参考,但由于某种原因,这个应用程序在我朋友的手机上不停地崩溃。所有手机可能都没有外置 SD 卡,所以我也需要检查一下吗?
-
没有安全路径,因为用户可以看到对 SD 卡或内部存储的最新更改。所以你必须加密你的数据,如果它们是敏感的
-
没有数据不安全。我的错。我的意思是一条我可以继续重复使用的路径,因为我想在应用启动后加载相同的图片。
-
查找 Environment.getExternalStorageDirectory()
标签: android image android-intent android-camera android-camera-intent