Glide не изменяет размер изображения, когда используется метод thumbnail(...)

С использованием thumbnail(0.5f) следует уменьшить размер изображения до 50% от исходного, но это не так.

Рассмотрим следующий код.

Glide.with(context).load(imgUrl)
                .thumbnail(0.5f)   //Make this work.
                .crossFade()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(imageView);

Я пытался удалить другие методы, такие как crossFade(), diskCacheStrategy() и т.д., чтобы увидеть, если они создают какую-то проблему, но это все равно не меняет размер изображения.

Я также попытался загрузить представление динамически с помощью кода вместо использования XML-файла, он по-прежнему не изменяется.

Полное раскрытие, я делаю все это внутри фрагмента.

Я не знаю, что я делаю, что неправильно. Надеюсь, кто-то поможет.

2 ответа

Использование override(int,int) метод динамического изменения размера изображения. glide генерирует новое растровое изображение с шириной и высотой, указанное в переопределении (w,h), а затем загружает изображение в ImageView, Ты можешь использовать fitCenter() выровнять изображение. Вы также можете использовать diskCacheStrategy(),

Glide.with(context)
            .load(imgUrl)
            .override(800, 400)
            .fitCenter()
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .into(imageView)

Надеюсь, это поможет вам!

Кажется, ваш код для модуля Glide правильный, но может быть ошибка с "context", проверьте, что контекст имеет значение null. Или, если нет, попробуйте использовать метод getContext() внутри фрагмента следующим образом.

Glide.with(getContext()).load(imgUrl)
            .thumbnail(0.5f) 
            .crossFade()
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .into(imageView);

для получения дополнительной информации попробуйте документацию Glide. Надеюсь, это поможет.

Другие вопросы по тегам