如果已经设置好了bitmap函数 需要如何去让拍照和选择图片都调用bitmap
时间: 2024-05-16 17:14:34 浏览: 51
如果你已经有了一个能够将图片转为 Bitmap 的函数,那么你可以在拍照或选择图片后,将得到的图片文件路径传入该函数中,以获取 Bitmap 对象。具体实现方式如下:
1. 拍照获取图片
在拍照的回调函数中,可以通过以下方式获取到拍摄的照片文件路径:
```
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap bitmap = (Bitmap) extras.get("data");
// TODO: 将 bitmap 传入转换函数,获取转换后的 Bitmap 对象
}
}
```
其中 `data.getExtras().get("data")` 返回的是一个 Bitmap 对象,你可以直接将其传入转换函数中,或者先将其保存到文件,再传入转换函数中。
2. 从相册选择图片
从相册选择图片的过程比较复杂,需要先让用户选择图片所在的相册,再从相册中选择图片。具体实现方式可以参考以下代码:
```
private void selectImage() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, REQUEST_SELECT_IMAGE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_SELECT_IMAGE && resultCode == RESULT_OK) {
Uri uri = data.getData();
Bitmap bitmap = null;
try {
bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
} catch (IOException e) {
e.printStackTrace();
}
// TODO: 将 bitmap 传入转换函数,获取转换后的 Bitmap 对象
}
}
```
在这里,我们首先启动一个 `ACTION_GET_CONTENT` 操作,让用户选择图片所在的相册。在选择完相册后,我们可以通过 `data.getData()` 获取到用户选择的图片的 Uri,然后通过 `MediaStore.Images.Media.getBitmap()` 方法将其转换为 Bitmap 对象。最后,将 Bitmap 对象传入转换函数中,即可得到转换后的 Bitmap 对象。
阅读全文