Android Glide 升级4.8 后, 原方法error/preload/fallback 无法使用

版权声明:1、本BLOG的目的、形式及内容。   此BLOG为个人维护BLOG,内容均来自 原创及互连网转载。最终目的为收集整理自己需要的文章技术等内容,不涉及商业用途。\r\n 2、有关原创文章的版权   本BLOG上原创文章未经本人许可,不得用于商业用途及传统媒体。网络媒体转载请注明出处,否则属于侵权行为。\r\n 3、有关本站侵权   本BLOG所转载的内容,均是本人未发现有对文章版权声明的文章且 https://blog.csdn.net/shijianduan1/article/details/82344382

---------------------------------------------------------------------------------------------------------------------------------------------------------------

转载声明:本文来自 https://blog.csdn.net/shijianduan1/article/details/82344382

---------------------------------------------------------------------------------------------------------------------------------------------------------------

先 单刀直入, 说下错误 和 更改。  原因放后面缓缓道来。

1. 先 看下 Glide 4.8 之前 原先调用的方法 

 Glide.with(this)
                .load("img")
                .error(R.mipmap.ic_launcher)
                .preload(R.mipmap.ic_launcher)
                .into(imageView);

2. 当更新到Glide4.8 时, error/preload/fallback  均会报错,要求提供  “new RequestBuilder<Drawable>()“ 这个类,然后当你想去 new 一个的时候, 会发现一脸懵逼。具体实现 再说。 

 下面直接贴出解决代码, new一个RequestOptions ,将这些配置提前配置好  

                                            (此处,感谢 github 上的,jigarpatel17 对我的疑问进行了解答)

RequestOptions requestOptions = new RequestOptions()
       .placeholder(new ColorDrawable(Color.BLACK))
       .error(new ColorDrawable(Color.BLUE))
       .fallback(new ColorDrawable(Color.RED));

Glide.with(this)
       .load("img")
       .apply(requestOptions)
       .into(imageView);

---------------------------------------------------------------------------------------------------------------------------------------------------------------

解决方法 到此为止, 以下 是 个人分析,总结。 欢迎交流

---------------------------------------------------------------------------------------------------------------------------------------------------------------

 3.  链接是 Glide4.8版本发布的信息  Glide 4.8 - release note

      我这里 直接贴出 翻译结果( 机器翻译+个人优化)

Features

可以将多个RequestListener添加到单个请求中(9328999,感谢Adrian)

添加了Glide基本目标方法的更安全版本,强制调用者实现onLoadCleared,并放弃了不安全版本。未能实现onLoadCleared目标可能导致UI显示不正确的图像、运行时异常或各种其他资源重用错误(3a70607, 感谢azlatin@)。

Bugs

在O MR1和更上级的外界面,HEIF取向提供了支持(a3f8114)

改进的网络故障错误信息 (#2894ff463d7)

Placeholder/error/fallback 图片和ID变量现在替换成 提前调用其他变量相同的方法。例如,placeholder(Drawable))将取代以前的.placeholder(R.id.xyz)(2dccb5c)。

改进的ModelLoaderRegistry同步(62e6c11,感谢@ JNLopar)

Deprecations

弃用SimpleTarget 和ViewTarget,请参阅这些发行说明中的特性中的CustomViewTarget 描述以获得更详细的说明。

Behavior Changes

以暂停的RequestManager开始的Requests (通常在暂停的Activity 或Fragment中)立即暂停,以便它们显示placeholder 而不是空白位置 (a55e935)

Breaking Changes

删除了优先选择的PREFER_ARGB_8888_DISALLOW_HARDWARE 硬件解码格式。使用RequestOptions # disallowHardwareConfig ()代替(7eb59f7);

从内部请求接口中删除pause()和isPaused()(9089752)

GLIDE现在使用资源ID(在CustomViewTarget中),因此不能再作为直的jar释放。

建立变化

增加了对androidx注释的支持(c3328fe,,感谢@ CelnRTWALW)

更新到Android Gooal3.1.3。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

4. 分析 

 先把 文档地址列出来, 万一以后 挖坑不填了, 也可以有文档参考, 
其实主要是 查看  RequestOptions 和 RequestBuilder 的使用

普通的 接口说明文档

   https://bumptech.github.io/glide/doc/options.html  
详细的接口文档, 
https://bumptech.github.io/glide/javadocs/400/com/bumptech/glide/request/RequestOptions.html

PS:在 额外说一句, 不要 直接 看 中文版本, 中文版和英文版 有时间差,不一定是最新的, 
       glide4.8 是  2018.08.17发布的(没记错的话),

       但是很显然, 本文章发布的时候,中文版 还是停留在0709的时间节点

猜你喜欢

转载自blog.csdn.net/shijianduan1/article/details/82344382