Glide multi instance с различными преобразованиями - PullRequest
2 голосов
/ 30 апреля 2019

как у меня может быть свой экземпляр Glide (или соответствующий компонент), который у каждого может быть свой RequestOptions?

Я пытался создать другой экземпляр с помощью Glide.with(app).serRequestOptions(...), но, похоже, он будет применен к одному экземпляру и разделен между всеми, есть ли лучший способ справиться с этим ??

, чтобы объяснить больше:

У меня есть универсальный интерфейс для загрузки изображений

interface ImageLoader {
    fun load(view: ImageView, url: String)
}

и тогда у меня есть 2 различных реализации этого:

class SquareImageLoader(context:Context):ImageLoader{
    private val requestManager = Glide.with(context)
            .setDefaultRequestOptions(RequestOptions())
    override fun load(view: ImageView, url: String) {
        requestManager.load(url).into(view)
    }
}
class CircularImageLoader(context:Context):ImageLoader{
    private val requestManager = Glide.with(context)
            .setDefaultRequestOptions(RequestOptions.centerCropTransform())
    override fun load(view: ImageView, url: String) {
        requestManager.load(url).into(view)
    }
}

проблема в том, что requestManager в обоих классах - это один и тот же экземпляр, поэтому любая модификация одного из них повлияет на другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...