怎么点击按钮后调用系统相机拍照
时间: 2023-10-13 18:04:12 浏览: 88
你可以使用 Android 系统提供的 Intent 类调用系统相机拍照。你需要创建一个 Intent 对象,指定 Intent 的 action 为 MediaStore.ACTION_IMAGE_CAPTURE,然后调用 startActivityForResult() 方法启动相机应用。
以下是一个示例代码:
```
private static final int REQUEST_IMAGE_CAPTURE = 1;
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
// 处理拍照返回的数据
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
// 将图片显示在 ImageView 中或者保存到本地
}
}
```
在上面的代码中,我们定义了一个 REQUEST_IMAGE_CAPTURE 常量来标识启动相机的请求。当用户点击按钮时,我们调用 dispatchTakePictureIntent() 方法来启动相机应用。如果设备上没有安装相机应用,那么 takePictureIntent.resolveActivity(getPackageManager()) 会返回 null,我们需要检查这个返回值以避免应用崩溃。
当用户拍照完成后,相机应用会将照片数据返回给我们的应用。我们需要在 onActivityResult() 方法中处理这个返回的数据。在上面的代码中,我们从 Intent 的 extras 中获取了照片的 Bitmap 对象,然后可以将它显示在 ImageView 中或者保存到本地。
阅读全文