Android, не удается правильно настроить мои растровые изображения внутри ImageView с помощью Glide и setImageBitmap

#android #android-layout #imageview #android-glide #android-bitmap

#Android #android-макет #imageview #android-glide #android-bitmap

Вопрос:

У меня возникли проблемы в нескольких местах, где мне нужно поместить меньшее изображение в больший ImageView или наоборот. Параметры Glide, такие как fitCenter, Override и тому подобное, похоже, не имеют никакого значения.

Вот первый экран

введите описание изображения здесь

Загрузка растрового изображения (из галереи) с помощью этого кода. Изображение имеет размер 284×177

         val glideOptions = RequestOptions().override(binding.selectedImage.width, binding.selectedImage.height).fitCenter()
        Glide.with(binding.selectedImage).load(currentPhotoURI).apply(glideOptions).into(binding.selectedImage)
 

И это ImageView

      <ImageView
            android:id="@ id/selected_image"
            android:layout_width="320dp"
            android:layout_height="400dp"
            android:layout_margin="10dp"
            android:background="@color/background_gray" />
 

Вот еще один случай, изображение теперь больше, 400×249, но оно все еще не подходит так, как должно. Это элемент представления для повторного использования.

введите описание изображения здесь

        val glideOptions = RequestOptions().override(itemBinding.imageImageView.width, itemBinding.imageImageView.height).fitCenter()
            val imagePath = if (image.progressImagePath == "") {
                image.edgesImagePath
            } else {
                image.progressImagePath
            }
            Glide.with(itemBinding.imageImageView)
                .load(imagePath)
                .apply(glideOptions)
                .transition(withCrossFade())
                .into(itemBinding.imageImageView)
 

И вот xml, ничего особенного

         <ImageView
            android:id="@ id/image_imageView"
            android:layout_width="200dp"
            android:layout_height="200dp"
            tools:src="@android:drawable/sym_def_app_icon" />
 

Это довольно тривиальный вопрос, и я ожидаю, что то, что я пробовал, сработает, но, похоже, это не так. Визуально ничего не меняется, независимо от того, какие параметры я использую.

Ответ №1:

Вам необходимо добавить тип масштаба в ImageView XML, что позволит вам переопределить тип масштаба изображения

 android:scaleType="centerCrop"
 
 <ImageView
        android:id="@ id/selected_image"
        android:layout_width="320dp"
        android:layout_height="400dp"
        android:layout_margin="10dp"
        android:scaleType="centerCrop"
        android:background="@android:color/darker_gray" />