如何解决Android应用程序内的相机控制
| 我正在为基于照片库的Android 2.2构建应用程序。有一个选项可以从相机拍照并在应用程序中使用它。我期望: 从应用程序启用相机。 拍照。 自动关闭相机并在应用程序中显示拍摄的照片 不幸的是,我无法将捕获的图像发送到应用程序。拍照后,相机不会自动关闭或返回应用程序。现在,我必须单击“后退”按钮转到应用程序,然后从SD卡中手动选择图片。相机是通过意图打开的,我正在使用以下课程。 http://developer.android.com/reference/android/hardware/Camera.html解决方法
您需要做两件事。启动“相机”应用,并告诉它所拍摄照片的存储位置:
File photo = new File(Environment.getExternalStorageDirectory(),\"myFile.jpg\");
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(photo));
startActivityForResult(intent,myRequestCode);
当用户关闭“相机”应用程序时,您的应用程序和“活动”将恢复。因此,您必须重写onActivityResult才能获得结果:
if (resultCode == myRequestCode){
File photo = new File(Environment.getExternalStorageDirectory(),\"myFile.jpg\");
// open it,show it,insert into MediaStore whatever
}
如果您没有提供保存位置,则可以使用Intent.EXTRA_STREAM使用intent.getData或intent.getParcelableExtra进行检索。
, 我猜..您正在做类似下面的代码
Intent cameraIntent =新Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
// 请求代码
startActivityForResult(cameraIntent,CAMERA_PIC_REQUEST);
使用startActivityForResult而不是startActivity ..每当您用相机完成..按ok ..之后,您将返回到活动..然后在活动中将调用onActivityResult回调。在这里,您将获得点击图像的数据。
谢谢。
, michaelg的答案就在现场。
只有您必须考虑带有图像捕获错误的设备。
在这里阅读:
Android ACTION_IMAGE_CAPTURE意向
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。