#android #kotlin
#Android #kotlin
Вопрос:
Я хочу выбрать изображение из галереи, я добавил READ_EXTERNAL_STORAGE
разрешение Manifest
, но оно не работает нормально. Он принимает путь uri
к изображению, но не показывает его. Только прямоугольник с хорошими пропорциями (экран и код ниже)
class NewRestaurantFragment : Fragment(R.layout.fragment_new_restaurant) {
companion object {
private const val TAG = "NewRestaurantFragment"
private const val GET_IMAGE_REQUEST_CODE = 2137
}
private lateinit var ivPhoto: ImageView
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
ivPhoto = view.findViewById(R.id.iv_photo)
ivPhoto.setOnClickListener {
selectPhoto()
}
}
private fun selectPhoto() {
val intent = Intent()
intent.apply {
type = "image/"
action = Intent.ACTION_PICK
}
startActivityForResult(intent, GET_IMAGE_REQUEST_CODE)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == GET_IMAGE_REQUEST_CODE amp;amp; resultCode == RESULT_OK) {
val uri = data!!.data
ivPhoto.setImageURI(uri)
}
}
}
Комментарии:
1.
, I added the READ_EXTERNAL_STORAGE permission to Manifest,
Вам не нужно это разрешение.2. Выберите изображение гораздо меньшего размера. Один с низким разрешением.
3. я думаю, проблема в том, что вы не передаете uri с вашим намерением