我想帮助将从相机拍摄的照片保存到SD卡上的特定文件夹中。我的相机打开,拍照并保存;但它将它们保存到标准文件夹中。我所拥有的代码是:
public class Camera extends Activity {
public static final int MEDIA_TYPE_IMAGE = 1;
public static final int MEDIA_TYPE_VIDEO = 2;
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
String Path;
private Uri fileUri;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras=getIntent().getExtras();
Path= extras.getString("Path");
Log.d("camear","path: "+Path);
//File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyCameraApp");
Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
this.startActivity(intent);
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
//mediaFile = new File(mediaStorageDir.getPath() + File.separator +"IMG_"+ timeStamp + ".jpg");
//fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
Uri outputFileUri= Uri.fromFile(new File(Path+"/camera/"+timeStamp+".jpg"));// create a file to save the image
intent.putExtra("output", outputFileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
路径来自应用程序上的另一个活动,它传递的值很好。在上一个活动中,它会创建我想要将图片保存到的文件夹。
我查看了以下答案,并尝试实施了一些建议:How to save images from Camera in Android to specific folder?。我没有尝试过的一件事是OnActivityResult的最后一个建议。这是关键还是我缺少的其他东西?这个页面提到了ContentResolver The Camera Intent is simply not working,有一件事就是两个页面看起来都想做同样的事情,但是以不同的方式去做。
答案 0 :(得分:1)
我弄清楚我做错了什么。如果你看一下代码,我犯了两个错误。第一个错误是我的道路。我从上一个活动获得了正确的路径,但是我没有在这里创建文件夹路径。这是对我有用的代码:
File Folder=new File(Path);
File picFile= new File(Folder.getPath()+"/"+timeStamp+".jpg");
第一行检查文件夹,第二行使用文件夹的路径创建文件。我没有任何一部分。没有它找到路径,它只是想要保存。
我遇到的另一个问题是我的Intent调用,我使用了:MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA。这没有任何@Overrides显然就像保存在其文件夹中的实际相机一样。我把它改成了:
MediaStore.ACTION_IMAGE_CAPTURE,它允许我更多的控制。
我遇到并想出的另一个问题是ACTION_IMAGE_CAPTURE,它需要关闭。但是如果使用从相机应用程序返回的结果代码实现 onActivityResult ,您可以重新调用相机并使其再次运行,或者您可以将其关闭并返回到另一个活动。它不是原始问题的一部分,但是我遇到了一个问题。