拍照与选择照片
// 拍摄照片
private val takePicturePreview =
registerForActivityResult(ActivityResultContracts.TakePicturePreview()) { photoPreview ->
// 该合约返回的是Bitmap,需要保存要进行额外的处理
if (photoPreview != null) {
ivPhoto.setImageBitmap(photoPreview)
}
}
// 相册选择单张
private val selectPhoto =
registerForActivityResult(ActivityResultContracts.GetContent()) { uri ->
if (uri != null) {
ivPhoto.setImageURI(uri)
}
}
// 相册选择多张
private val selectMultiplePhoto =
registerForActivityResult(ActivityResultContracts.GetMultipleContents()) { uriList ->
if (uriList.size > 1) {
// 处理返回的集合并进行显示
}
}
使用
cameraShot.setOnClickListener {
// 相机拍摄
takePicturePreview.launch(null)
}
albumSelect.setOnClickListener {
// 图片选择
selectPhoto.launch("image/*")
}