Целый день потратил на эту проблему :(
В своем приложении для Android я загружаю с сервера изображения разного размера. Например, изображение A имеет размер 500x330, изображение B имеет размер 500x700 и так далее. Я также добавил текст под изображениями. Я использую изображение-заполнитель размером 500x400.
Я могу загрузить изображения и показать заполнитель с помощью Glide:
XML:
<android.support.v7.widget.AppCompatImageView
android:id="@+id/myImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY" />
Котлин:
GlideApp.with(myImage.context)
.load(url)
.skipMemoryCache(false)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(myImage)
Проблема:
Пока изображение загружается, отображается заполнитель с высотой 400. По окончании загрузки пользователи увидят, например, изменение высоты с 400 до 700. Затем пользователи также видят, что текст под изображениями прыгает вверх или вниз в зависимости от размера изображения :(
Вопрос:
Как я могу масштабировать или поддерживать одинаковый размер заполнителя с каждым загружаемым изображением, которое я хочу показать в пользовательском интерфейсе. Чтобы UI не менялся после загрузки?
Примечания. Я не хочу жестко кодировать высоту моих статических изображений, например, layout_height = "100dp". Они должны быть того же размера и радио, что и они.
Если Glide не может этого сделать. Ребята, у вас есть другие предложения?
Большое спасибо.