由于startActivityForResult()已贬值。如何从Android中的Kotlin画廊图像?
mspsb9vt1#
你可以使用registerForActivityResult来代替startActivityForResult。下面是我在Kotlin中从图库中获取图片的代码:
// class level private val openGallery = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { if (it.resultCode == RESULT_OK) { binding.imgProfile.load(it.data?.data) } } // in onViewCreated imgProfile.setOnClickListener { val intent = Intent(Intent.ACTION_PICK) intent.setType("image/*") intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) openGallery.launch(intent) }
s1ag04yj2#
//在按钮上侦听器放置此代码
buttonPressed.setOnClickListener { val intent = Intent(Intent.ACTION_PICK) intent.type = "image/*" intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION openGallery.launch(intent) }
//在onCreate外部放置此代码
private val openGallery = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { if (it.resultCode == RESULT_OK) { backgroundImage.setImageURI(it.data?.data) } }
2条答案
按热度按时间mspsb9vt1#
你可以使用registerForActivityResult来代替startActivityForResult。下面是我在Kotlin中从图库中获取图片的代码:
s1ag04yj2#
//在按钮上侦听器放置此代码
//在onCreate外部放置此代码