Android从一个名为CameraView的图片中获取URI字符串

时间:2011-03-29 16:43:23

标签: android camera image

启动相机意图:

void openCamera() {

   File imageDirectory = new File("/sdcard/myprog");
   if (!imageDirectory.isDirectory()) imageDirectory.mkdir();

   String path = imageDirectory.toString().toLowerCase();
   String name = imageDirectory.getName().toLowerCase();

  ContentValues values = new ContentValues(); 
  values.put(Media.TITLE, "Image"); 
  values.put(Images.Media.BUCKET_ID, path.hashCode());
  values.put(Images.Media.BUCKET_DISPLAY_NAME,name);

  values.put(Images.Media.MIME_TYPE, "image/jpeg");
  values.put(Media.DESCRIPTION, "Image capture by camera");
  values.put("_data", "/sdcard/myprog/1111.jpg");
    Uri uri = getContentResolver().insert( Media.EXTERNAL_CONTENT_URI , values);
  Intent i = new Intent("android.media.action.IMAGE_CAPTURE"); 

  i.putExtra(MediaStore.EXTRA_OUTPUT, uri);

  startActivityForResult(i, 0); 

}

然后......

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

     if (requestCode==0 && resultCode==RESULT_OK)    {

         Uri path = data.getData();
...

我尝试了很多样本​​用我的相机在我的程序上拍照,然后在我的程序中使用该图片,但是:

-i在这里得到一个例外:Uri path = data.getData();

- 或者我得到一个空值:Uri path = data.getData();

获取拍摄的相机图片网址的正确方法是什么?

谢谢,Leslie

1 个答案:

答案 0 :(得分:2)

你需要做

Uri path = Uri.parse(imageDirectory.toString());

至少如果imageDirectory持有Uri的字符串表示

或者我想你可以这样做

Uri imagePath = Uri.parse(path);

因为您已经获得了imagedirectory字符串