我正在构建基于照片库的Android 2.2应用程序。可以选择从相机拍摄照片并在应用程序中使用它。我期待着:
从应用程序启用相机。
拍照。
自动关闭相机并在应用程序中显示捕获的图片
不幸的是,我无法将捕获的图像提供给应用程序。拍摄照片后,相机不会自动关闭或返回应用程序。现在我必须单击后退按钮转到应用程序,然后从SD卡中手动选择图片。相机正在通过意图打开,我正在使用以下课程。
http://developer.android.com/reference/android/hardware/Camera.html
答案 0 :(得分:4)
你需要做两件事。启动相机应用程序并告诉它存储所需图片的位置:
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.getData使用intent.getParcelableExtra或Intent.EXTRA_STREAM来检索它。
答案 1 :(得分:2)
我猜...你正在做类似下面的代码
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); //请求代码
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
使用startActivityForResult而不是startActivity ..每当你完成你的相机时......按ok ..你会回到你的活动..然后在你的活动onActivityResult回调将被调用。在这里,您将获得所点击图像的数据。
感谢。
答案 2 :(得分:2)