滑动具有不同变换的多实例

时间:2019-04-30 00:12:37

标签: android dagger-2 android-glide

我如何拥有一个不同的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是同一实例,因此对其中一个进行的任何修改都会影响另一个。

0 个答案:

没有答案