Glide4.0后占位图和过渡动画冲突解决方案

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

image.png

官网并没有明确指出具体改如何使用,本人在网上搜了各种资料也未找到具体实现。在看了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);

相信此问题,应该会有不少小伙伴遇到,贴出来供大家参考。

你可能感兴趣的:(Glide4.0后占位图和过渡动画冲突解决方案)