Glide4.0后占位图和过渡动画冲突解决方案
2018-04-28 本文已影响2020人
Hilary_Lu
在使用Glide4.0后面的版本中,实现渐入动画效果一般采用requestBuilder.transition(DrawableTransitionOptions.withCrossFade(fadeDuration))
。如果占位图(placeHolder)比请求加载的url图要大,或者实际加载图是有透明部分未把占位图遮挡,就会看到占位图,占位图被当作加载成功后的图的背景展示,遇到此问题在glide官网查到了此问题,github上也有这个issiue,官网给出的对应的解决方案如下:

官网并没有明确指出具体改如何使用,本人在网上搜了各种资料也未找到具体实现。在看了DrawableCrossFadeFactory的源码后本人找到了答案,示例代码如下:
DrawableCrossFadeFactory drawableCrossFadeFactory = new DrawableCrossFadeFactory.Builder(300).setCrossFadeEnabled(true).build();
Glide.with(this)
.load(URL_JPG)
.apply(new RequestOptions().placeholder(R.drawable.ic_launcher))
.transition(DrawableTransitionOptions.with(drawableCrossFadeFactory))
.into(imageView);
相信此问题,应该会有不少小伙伴遇到,贴出来供大家参考。