Android系统相机拍照与选择照片

苏嘉志
2023-12-01

拍照与选择照片

    // 拍摄照片
    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/*")
   }
 类似资料: