Несоответствие Пикассо и Койла в выборе размера изображения?
Первый скриншот с Пикассо, второй с Coil (оба в последних версиях). Есть идеи, почему это происходит?
Пикассо: fit().centerInside()
Катушка: scale(Scale.FILL).crossfade(true)
(Я также пробовал с FIT, те же результаты)
ImageView: adjustViewBounds = true; scaleType = CENTER_INSIDE
с шириной MATCH_PARENT и постоянной высотой в пикселях.
1 ответ
Катушка автоматически подстраивается под тип шкалы ImageView
поэтому настраивать масштаб не нужно.
Пикассо нет, а Пикассо .fit().centerInside()
на самом деле не эквивалентно ImageView
с CENTER_INSIDE
но FIT_CENTER
(это увеличит изображение так, чтобы хотя бы одно измерение соответствовало ImageView
). Нет эквивалентаCENTER_INSIDE
с Пикассо, но это самые близкие варианты:
- Вы можете просто удалить
.fit().centerInside()
и пустьImageView
уменьшите масштаб изображения, если оно больше, но если изображение очень большое, оно будет потреблять много памяти (и может не загрузиться, если размер текстуры больше максимального размера устройства). - Ты можешь использовать
.resize(width, height).centerInside().onlyScaleDown()
после измерения размераImageView
вручную.
Если вы хотите, чтобы Coil изменил размер изображения так же, как Пикассо с .fit().centerInside()
, затем просто измените тип шкалы ImageView
к FIT_CENTER
.