安卓版本5.0 如果已经设置好了bitmap函数 需要如何去让拍照和选择图片都同时调用bitmap
时间: 2024-05-01 18:20:22 浏览: 65
Android调用拍照或者相册选择图片
在 Android 5.0 及以上版本中,可以使用`Intent`来启动系统的相机应用或者图库应用,然后将拍摄的照片或者选中的图片通过`URI`返回给调用方。如果您需要同时将图片转换为`Bitmap`,可以在`onActivityResult`方法中获取返回的`URI`,然后使用`BitmapFactory`类中的`decodeStream`方法将`URI`转换为`Bitmap`对象。
以下是一个简单的示例代码:
```java
private static final int REQUEST_CAMERA = 1;
private static final int REQUEST_GALLERY = 2;
// 调用系统相机
public void takePhoto() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_CAMERA);
}
// 调用系统图库
public void pickPhoto() {
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQUEST_GALLERY);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case REQUEST_CAMERA:
Bundle extras = data.getExtras();
if (extras != null) {
Bitmap bitmap = (Bitmap) extras.get("data");
// TODO: 处理拍摄的照片
}
break;
case REQUEST_GALLERY:
Uri uri = data.getData();
try {
Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));
// TODO: 处理选中的图片
} catch (FileNotFoundException e) {
e.printStackTrace();
}
break;
}
}
}
```
在上面的示例代码中,`takePhoto`方法启动系统相机应用,`pickPhoto`方法启动系统图库应用。在`onActivityResult`方法中,当返回结果为`RESULT_OK`时,分别处理拍摄的照片和选中的图片。拍摄的照片通过`extras`参数获取,选中的图片通过`getContentResolver().openInputStream(uri)`方法获取`InputStream`,然后通过`BitmapFactory.decodeStream`方法将其转换为`Bitmap`对象。最后,您可以在`TODO`注释的位置处理获取到的`Bitmap`对象。
阅读全文