Glide官网中文文档: https://muyangmin.github.io/glide-docs-cn/ 1:基本用法 多数情况下,使用Glide加载图片非常简单,一行代码足矣: Glide. with (fragment) . load (myUrl) . into (imageView); 取消加载同样很简单: Glide. with (fragment). clear (imageView); 尽管及时取消不必要的加载是很好的实践,但这并不是必须的操作。实际上,当  Glide.with()  中传入的 Activity 或 Fragment 实例销毁时,Glide 会自动取消加载并回收资源。 2:在 Application 模块中的使用  Application 模块中,可创建一个添加有  @GlideModule  注解,继承自  AppGlideModule  的类。此类可生成出一个流式 API,内联了多种选项,和集成库中自定义的选项: package com. example . myapp ; import com.bumptech.glide.annotation.GlideModule ; import com.bumptech.glide.module.AppGlideModule ; @GlideModule public final class MyAppGlideModule extends AppGlideModule {} 生成的 API 默认名为  GlideApp  ,与  AppGlideModule  的子类包名相同。在 Application 模块中将  Glide.with()  替换为  GlideApp.with() ,即可使用该 API 去完成加载工作。 GlideApp. with (fragment) . load (myUrl) . placeholder (placeholder) . fitCenter () . into (imageView); 可以访问 Glide 的  generated API  页面来获得更多信息。 3:在 ListView 和 RecyclerView 中的使用 在 ListView 或 RecyclerView 中加载图片的代码和在单独的 View 中加载完全一样。Glide 已经自动处理了 View 的复用和请求的取消: @Override public void onBindViewHolder (ViewHolder holder, int position) { String url = urls. get (position); Glide. with (fragment) . load (url) . into (holder. imageView );} 对 url 进行 null 检验并不是必须的,如果 url 为 null,Glide 会清空 View 的内容,或者显示  placeholder Drawable  或  fallback Drawable  的内容。 Glide 唯一的要求是,对于任何可复用的  View  或  Target  ,如果它们在之前的位置上,用 Glide 进行过加载操作,那么在新的位置上要去执行一个新的加载操作,或调用  clear()  API 停止 Glide 的工作。 @Override public void onBindViewHolder (ViewHolder holder, int position) { if (isImagePosition(position)) { String url = urls. get (position); Glide. with (fragment) . load (url) . into (holder. imageView ); } else { Glide. with (fragment). clear (holder. imageView ); holder. imageView . setImageDrawable (specialDrawable); }} 对  View  调用  clear()  或  into(View) ,表明在此之前的加载操作会被取消,并且在方法调用完成后,Glide 不会改变 view 的内容。如果你忘记调用  clear() ,而又没有开启新的加载操作,那么就会出现这种情况,你已经为一个 view 设置好了一个  Drawable ,但该 view 在之前的位置上使用 Glide 进行过加载图片的操作,Glide 加载完毕后可能会将这个 view 改回成原来的内容。 这里的代码以 RecyclerView 的使用为例,但规则同样适用于 ListView。 4:占位符 4-1) 占位符(Placeholder) 占位符是当请求正在执行时被展示的 Drawable 。当请求成功完成时,占位符会被请求到的资源替换。如果被请求的资源是从内存中加载出来的,那么占位符可能根本不会被显示。如果请求失败并且没有设置  error Drawable  ,则占位符将被持续展示。类似地,如果请求的url/model为  null  ,并且  error Drawable  和  fallback  都没有设置,那么占位符也会继续显示。 使用  generated API  : GlideApp. with (fragment) . load (url) . placeholder (R. drawable . placeholder ) . into (view); Or: GlideApp. with (fragment) . load (url) . placeholder ( new ColorDrawable(Color. BLACK )) . into (view); 4-2) 错误符(Error) rror Drawable  在请求永久性失败时展示。 error Drawable  同样也在请求的url/model为  null  ,且并没有设置  fallback Drawable  时展示。 With the  generated API : GlideApp. with (fragment) . load (url) . error (R. drawable . error ) . into (view); Or: GlideApp. with (fragment) . load (url) . error ( new ColorDrawable(Color. RED )) . into (view); 4-3 后备回调符(Fallback) fallback Drawable  在请求的url/model为  null  时展示。设计  fallback Drawable  的主要目的是允许用户指示  null  是否为可接受的正常情况。例如,一个  null  的个人资料 url 可能暗示这个用户没有设置头像,因此应该使用默认头像。然而, null  也可能表明这个元数据根本就是不合法的,或者取不到。 默认情况下Glide将  null  作为错误处理,所以可以接受  null  的应用应当显式地设置一个  fallback Drawable  。 使用  generated API GlideApp. with (fragment) . load (url) . fallback (R. drawable . fallback ) . into (view); Or: GlideApp. with (fragment) . load (url) . fallback ( new ColorDrawable(Color. GREY )) . into (view);

更多相关文章

  1. Android(安卓)LayoutInflater 源码分析
  2. Android(安卓)学习笔记--android――Activity加载模式
  3. Android下PreferenceScreen 加载流程
  4. AndroidStudio 3.0 加载Android(安卓)support library问题
  5. Android: requires android.permission.READ_EXTERNAL_STORAGE,
  6. Android9.0网络请求解决方案_小笔记
  7. Netroid:强大、快速、易用、可扩展基于Volley实现的Android(安卓
  8. android从sdcard加载.9.png图片
  9. 【Android(安卓)okhttp源码解析 二】同步请求流程和源码分析

随机推荐

  1. Android(安卓)Studio笔记(2)——快捷键
  2. 第二章 Android动态加载、热更新、热修复
  3. Android(安卓)background tint颜色渲染
  4. android测试之getevent/sendevent
  5. Android源码下载——用git clone实现单个
  6. Android菜单简析02(ContextMenu)
  7. 详解高速神器python脚步打包android apk,
  8. Android软件广告屏蔽方法及代码
  9. C语言实现基于控制台的电子时钟
  10. Python3利用Qt5实现简易的五子棋游戏