安卓13如何用intent调用系统相机拍照并在imageview中展示
时间: 2024-03-03 19:50:33 浏览: 13
您可以使用以下代码来调用系统相机拍照并在ImageView中展示照片:
```java
// 定义请求码,用于在onActivityResult方法中判断是哪个请求返回的结果
private static final int REQUEST_IMAGE_CAPTURE = 1;
// 定义一个成员变量,用于存储拍照后的照片
private Bitmap mBitmap;
// 设置ImageView的点击事件,点击时调用相机拍照
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 创建一个Intent,用于调用系统相机
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 确保有应用程序可以处理该Intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// 启动相机应用程序,并在拍照后将结果返回给此应用程序
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
});
// 在onActivityResult方法中处理相机返回的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
// 从Intent中获取拍摄的照片
Bundle extras = data.getExtras();
mBitmap = (Bitmap) extras.get("data");
// 将照片显示在ImageView中
imageView.setImageBitmap(mBitmap);
}
}
```
在上面的代码中,我们首先定义了一个请求码 `REQUEST_IMAGE_CAPTURE`,用于在 `onActivityResult` 方法中判断是哪个请求返回的结果。然后,我们在 ImageView 的点击事件中创建一个 Intent,用于调用系统相机,并启动相机应用程序,将拍照后的结果返回给此应用程序。在 `onActivityResult` 方法中,我们获取相机返回的照片,并将其显示在 ImageView 中。