当前位置: 首页 > news >正文

修改 网站 数据库可以直接进入网站的正能量没封的

修改 网站 数据库,可以直接进入网站的正能量没封的,做ppt常用的网站有哪些,电视剧在线观看免费影视网站文章目录一、前言二、源码分析1、load()Android Glide图片加载框架系列文章 Android Glide图片加载框架#xff08;一#xff09;基本用法 Android Glide图片加载框架#xff08;二#xff09;源码解析之with() Android Glide图片加载框架#xff08;二#xff09;源码… 文章目录一、前言二、源码分析1、load()Android Glide图片加载框架系列文章 Android Glide图片加载框架一基本用法 Android Glide图片加载框架二源码解析之with() Android Glide图片加载框架二源码解析之load() Android Glide图片加载框架二源码解析之into() Android Glide图片加载框架三缓存机制 一、前言 在源码分析系列文章中上一篇我们分析了 Glide.with() 方法的用法及作用它传递了我们的上下文对象并且返回绑定了对应生命周期的RequestManager对象还没有看过上一篇文章的朋友建议先去阅读 Android Glide图片加载框架二源码解析之with()。 下面我们来详细分析 load() 方法的源码。 二、源码分析 1、load() 我们先来回顾下平时在使用load方法的时候可以传入很多不同的参数例如 Glide.with(this).load(R.drawable.ic_android).into(imageView); Glide.with(this).load(http://xxx.xxx.png).into(imageView); Glide.with(this).load(Uri.parse(xxxxx)).into(imageView); Glide.with(this).load(getResources().getDrawable(R.drawable.ic_android)).into(imageView); Glide.with(this).load(new File(xxx)).into(imageView); Glide.with(this).load(BitmapFactory.decodeFile(xxx)).into(imageView);从上述代码中我们可以看到有很多个 load() 方法的重载支持了多种形式的图片资源包括 本地图片、应用资源、网络图片、二进制流、Uri对象 等使用起来很方便不用再自己写一堆请求网络或者读取本地文件的骚操作那么Glide的load()里面对它们做了什么处理能够兼容这么多形式的加载呢让我们一探究竟。 上一篇我们分析了 with() 方法的源码由于 with() 方法返回的是一个 RequestManager 对象那么很容易就能想到load() 方法是在 RequestManager 类当中的所以说我们首先要看的就是 RequestManager 这个类。 RequestManager 类的简化代码我们以load(String);为例如下所示 public class RequestManager implements LifecycleListener,ModelTypesRequestBuilderDrawable {...NonNullCheckResultOverridepublic RequestBuilderDrawable load(Nullable String string) {return asDrawable().load(string);}NonNullCheckResultpublic RequestBuilderDrawable asDrawable() {return as(Drawable.class);}NonNullCheckResultpublic ResourceType RequestBuilderResourceType as(NonNull ClassResourceType resourceClass) {return new RequestBuilder(glide, this, resourceClass, context);}... }RequestManager 类的代码是非常多的但是经过我这样简化之后看上去就比较清爽了。在我们只探究加载图片URL字符串这一个load()方法的情况下那么比较重要的方法就只剩下上述代码中的这三个方法。 那么我们先来看 load() 方法这个方法中的逻辑是非常简单的只有一行代码就是先调用了 asDrawable() 方法而 asDrawable() 方法也极为简单就是调用了 as() 方法并且指定参数为 Drawable.class as()方法中初始化了一个 RequestBuilder 对象然后调用 RequestBuilder对象的load() 方法。 细心的朋友会发现Glide不止有 asDrawable() 其实还有 asBitmap() 、asGif() 、asFile() 等等如下 public class RequestManager implements LifecycleListener,ModelTypesRequestBuilderDrawable {...public RequestBuilderBitmap asBitmap() {return as(Bitmap.class).apply(DECODE_TYPE_BITMAP);}public RequestBuilderGifDrawable asGif() {return as(GifDrawable.class).apply(DECODE_TYPE_GIF);}public RequestBuilderFile asFile() {return as(File.class).apply(skipMemoryCacheOf(true));}public ResourceType RequestBuilderResourceType as(NonNull ClassResourceType resourceClass) {return new RequestBuilder(glide, this, resourceClass, context);}... }由此我们可以发现Glide默认使用的是 asDrawable() 不管是还有 asBitmap() 、asGif() 还是 asFile() 最终都调用 as() 方法返回 RequestBuilder 对象实例。 RequestBuilder类的简化代码如下所示 public class RequestBuilderTranscodeType implements Cloneable,ModelTypesRequestBuilderTranscodeType {protected RequestBuilder(Glide glide, RequestManager requestManager,ClassTranscodeType transcodeClass, Context context) {this.glide glide;this.requestManager requestManager;this.transcodeClass transcodeClass;this.defaultRequestOptions requestManager.getDefaultRequestOptions();this.context context;this.transitionOptions requestManager.getDefaultTransitionOptions(transcodeClass);this.requestOptions defaultRequestOptions;this.glideContext glide.getGlideContext();}NonNullOverrideCheckResultpublic RequestBuilderTranscodeType load(Nullable String string) {return loadGeneric(string);}NonNullprivate RequestBuilderTranscodeType loadGeneric(Nullable Object model) {this.model model;isModelSet true;return this;} }从 RequestBuilder 的构造方法中我们可以看到这里的 transcodeClass 就是我们刚传进来的Drawable类型成为了 RequestBuilder 的成员变量。RequestBuilder对象实例化后调用RequestBuilder的 load() 方法load()方法内部都是调用了 loadGeneric() 这里的 model 即传进来的资源参数例如String、Bitmap、File…同样赋给RequestBuilder的成员变量并且置 isModelSet 标志位为true即标志着设置完成的意思并且将这个RequestBuilder实例返回。 至此我们得到了关于 RequestBuilder参数 的一些信息 transcodeClass 表示要将最终结果转换为什么类型 model 表示传进来的资源参数 isModelSet 是为了标志你已经调用了load方法是一个必要条件否则你没有先设置你所要加载的资源Glide怎么知道你要加载啥。 至此Glide的 load() 完成了它的使命是不是有种被欺骗的感觉load()方法其实还没真正开始加载into()才是最终加载的地方 。
http://www.yutouwan.com/news/366661/

相关文章:

  • 手机手机网站建设网站模糊背景
  • 广西住房与城乡建设厅网站电话黄图网站有哪些 推荐
  • 网站关键词调整 收录wordpress 生成静态页面
  • 《美食天下》网站的建设江西省赣州市有什么好玩的地方
  • 深圳网站做的好的公司名称wordpress 外链跳转
  • 网站推广与品牌建设cms开发教程
  • 外贸网站推广怎么样华大基因 网站建设公司
  • 网站只有一个首页单页面怎么做排名如何做酒店网站设计
  • 想学网站建设什么的个人网页设计作品简单
  • 做网站可以赚钱嘛升级访问通知正常更新
  • app网站的优点外贸客户如何开发
  • 个人备案企业网站大型行业门户网站开发建设
  • 家装商城系统网站建设新的网站的建设步骤
  • 广州定制网站建设方案书外贸自建站模板
  • 企业网站创建小结网页编辑面试知识
  • 网站建设专业团队图片百度平台商家我的订单查询
  • 网站开发之美 pdf单页网站排名
  • 网络信息工程师衡阳seo外包
  • 开网站平台需要多少钱wordpress访问特别慢
  • 电子商务网站开发形式有做网站的步骤 主题
  • php网站做安卓客户端用来查数据的网站怎么建设
  • 一个网站同时做竞价和seo宁波网站开发建设
  • 搭建网站的流程计算机类十大含金量证书
  • 做直播网站找哪家网站百度关键词怎么做
  • 网站建设绵阳免费俄罗斯网站制作
  • 网络公司网站报价方案网站定制二次开发
  • 企业网站建设与实施调查报告企业型网站
  • 网站建设的方案阿里虚拟主机无法安装wordpress
  • 广州网络推广建站wordpress在线支付插件
  • 如何做淘宝的站外网站推广室内设计师常用网站