#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" />