android – 如何获取刚从相机捕获的图像路径

前端之家收集整理的这篇文章主要介绍了android – 如何获取刚从相机捕获的图像路径前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下面是我的代码但是没有给我onActivity结果中的图像路径
  1. Uri selectedImageUri = data.getData();
  2. selectedImagePath = getPath(selectedImageUri);
  3. Log.w("jay","Camera Image Path :" + selectedImagePath);
  4.  
  5. Toast.makeText(MiscansOther_pannel.this,selectedImagePath,Toast.LENGTH_LONG).show();

解决方法

这对我有用……

码:

  1. Uri selectedImageUri = data.getData();
  2. selectedImagePath = getRealPathFromURI(selectedImageUri);

方法:getRealPathFromURI()

  1. //----------------------------------------
  2. /**
  3. * This method is used to get real path of file from from uri
  4. *
  5. * @param contentUri
  6. * @return String
  7. */
  8. //----------------------------------------
  9. public String getRealPathFromURI(Uri contentUri)
  10. {
  11. try
  12. {
  13. String[] proj = {MediaStore.Images.Media.DATA};
  14. Cursor cursor = managedQuery(contentUri,proj,null,null);
  15. int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
  16. cursor.moveToFirst();
  17. return cursor.getString(column_index);
  18. }
  19. catch (Exception e)
  20. {
  21. return contentUri.getPath();
  22. }
  23. }

编辑:

正如我在一些设备中注意到捕获的图像后,onActivityResult()中的数据为空,

因此,替代方法是将特定图像文件名作为参数传递给您的Intent,以捕获图像作为putExtra参数.

然后还将此图像Uri插入Media Store,现在使用此Uri进一步使用,

您可以通过File.exist()检查图像是否被捕获,

代码看起来像,

  1. ContentValues values = new ContentValues();
  2. values.put(MediaStore.Images.Media.TITLE,"Image File name");
  3. Uri mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values);
  4. Intent intentPicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  5. intentPicture.putExtra(MediaStore.EXTRA_OUTPUT,mCapturedImageURI);
  6. startActivityForResult(intentPicture,ACTION_TAKE_PICTURE);

现在,您可以使用相同的方法从Uri获取文件路径,

在这种情况下,它将在onActivityResult()中,

  1. selectedImagePath = getRealPathFromURI(mCapturedImageURI); // don't use data.getData() as it return null in some device instead use mCapturedImageUR uri variable statically in your code,

猜你在找的Android相关文章