在 android 设备中使用相机显示图像捕获
Posted
技术标签:
【中文标题】在 android 设备中使用相机显示图像捕获【英文标题】:Display image capture using camera in android device 【发布时间】:2011-09-03 06:06:19 【问题描述】:我想使用设备摄像头显示图像捕获,为此我使用了下面的代码。但是我在 onActivityResult 返回的数据中得到空值。所以请为我提供解决方案..
谢谢,
我的代码是:
File root = new File(Environment.getExternalStorageDirectory()+"/TestCameraGallery");
root.mkdirs();
MyCameraGallery = new File(root, "mycamerapicname");
Uri outputFileUri = Uri.fromFile(MyCameraGallery );
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, CAMERA_PIC_REQUEST);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CAMERA_PIC_REQUEST)
Uri uri = data.getData();
uri 的值为 null 并给出空指针异常所以请帮助我
【问题讨论】:
看到这个***.com/questions/5991319/… 【参考方案1】:使用您的代码,您将获得低分辨率图像。如果您想获得高分辨率图像,您可以参考this answer.
你也可以参考this blog
【讨论】:
【参考方案2】:最终得到解决方案
String imageName = "image.jpg" ;
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, imageName);
uri_captureImage = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri_captureImage);
startActivityForResult(intent, requestCode_camera);
并在 onAcitivity 中获取结果
String[] projection = new String[] MediaStore.Images.Media.DATA;
Cursor cursor = managedQuery(uri_captureImage, projection, null, null, null);
cursor.moveToFirst();
String capimage_path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
【讨论】:
以上是关于在 android 设备中使用相机显示图像捕获的主要内容,如果未能解决你的问题,请参考以下文章