ImageView не отображает изображение из галереи

#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 с вашим намерением