Android kotlin 用户更换头像 拍照和相册选择
时间: 2023-11-10 07:58:54 浏览: 164
以下是一个示例代码,用于在Android Kotlin中更换用户头像并从相册选择或拍摄照片:
```
//在此处声明变量
private lateinit var profileImage: ImageView
//在onCreate方法中初始化变量
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
profileImage = findViewById(R.id.profile_image)
//添加一个点击事件监听器,当用户点击头像时,将弹出一个对话框,询问用户是否从相机或相册中选择照片
profileImage.setOnClickListener {
val options = arrayOf<CharSequence>("拍照", "从相册选择")
val builder = AlertDialog.Builder(this)
builder.setTitle("选择图片来源")
builder.setItems(options) { dialog, item ->
when {
options[item] == "拍照" -> {
val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(takePictureIntent, 1)
}
options[item] == "从相册选择" -> {
val pickPhotoIntent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
startActivityForResult(pickPhotoIntent, 2)
}
}
}
builder.show()
}
}
//在activity中添加以下方法,用于处理从相机或相册返回的结果
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK) {
when (requestCode) {
1 -> {
val imageBitmap = data?.extras?.get("data") as Bitmap
profileImage.setImageBitmap(imageBitmap)
}
2 -> {
val selectedImage = data?.data
profileImage.setImageURI(selectedImage)
}
}
}
}
```
该代码将在用户点击头像时,弹出一个对话框,询问用户是否从相机或相册中选择照片。如果用户选择拍照,将启动相机应用程序并允许用户拍摄照片。如果用户选择从相册选择,将启动相册应用程序并允许用户选择照片。一旦用户选择了照片,将在ImageView中显示所选照片。
阅读全文