首页
学习
活动
专区
圈层
工具
发布

Glide 4.0.0 RC0 使用详解

用户可以添加新类型或自定义选项集来轻松地自定义Glide流畅的API。 大量简化个人请求类型,确保选项始终如一,易于使用,即使您正在加载不同类型的资源。...各种性能改进,包括在下载采样图像时大量减少垃圾,更加智能的默认磁盘缓存策略,以及加载GIF时性能提升。 改进了视图大小和布局的处理,特别是在RecyclerView中。...Glide 生成的API通过将选项对象和任何包含的集成库与构建器的选项合并,来创建单个流畅的API。...` (2)Libraries 有一个或多个GlideModules的库应该使用LibraryGlideModule而不是AppGlideModule。...库不应该使用AppGlideModules,因为每个应用程序只能有一个,所以在一个库中包含它不仅会阻止库的用户设置他们自己的选项,而且如果多个库包含一个AppGlideModule,它也会导致冲突。

1.2K40

Android图片加载开源库深度推荐,安利Fresco1、Universal-Image-Loader2、Picasso3、Glide4、Fresco

1、Universal-Image-Loader 1W多的star,无需置疑它的受欢迎程度,简单易上手,小喵我第一个使用的图片加载库就是它,适用于所有的Imageview,结合LruCache和DiskLurCache...Glide也是支持“所有”的ImageView,使用过程中十分流畅,这里推荐两个库: GlidePalette 一个可以在Glide加载时很方便使用Palette的库。...反正大家都这么说的 ,用这库就对了。 ? transformations 其他需要注意的,比如不能在非主线程下调用Glide加载图片。...setTag要使用SimpleTarget或者继承GlideModule,可以配置成OKHttp来替代请求等等等等等。 聪明的你一定知道了,因为我要说Fresco,那么为什么不用Glide了呢?...的方式,分段加载显示超长图,拒绝OOM,而且,而且,而且支持支持支持:双击放大,单击返回,手动放大等,目前只能加载本地,不怕不怕,可以下下来用缓存啊: 我的逻辑是,当图片的长度大于屏幕的2倍是就使用这个加载

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Material Design 实战 之第四弹 —— 卡片布局

    compile 'com.github.bumptech.glide:glide:3.7.0' Glide是一个超级强大的图片加载库,它不仅可以用于加载本地图片, 还可以加载网络图片、GIF...准备一个适配器, 适配器中除了RecycleView的设计逻辑之外,这里需要注意的是, 在onBindViewHoIder()方法中使用Glide来加载水果图片...compile 'com.github.bumptech.glide:glide:3.7.0' Glide是一个超级强大的图片加载库,它不仅可以用于加载本地图片,还可以加载网络图片、GIF图片、甚至是本地视频...最重要的是,Glide的用法非常简单,只需一行代码就能轻松实现复杂的图片加载功能,因此这里我 们准备用它来加载水果图片。...,这里需要注意的是,在onBindViewHoIder()方法中使用Glide来加载水果图片。

    2.6K10

    Android 选择图片、上传图片之Matisse

    本文还是基于官方文档0.4.3的版本 你以为这样就可以使用了吗,nonono,权限需要动态获取,你还需要RxPermissions或者其他权限库,或者自己封装 compile 'com.tbruyelle.rxpermissions2...,还是会报错,我在用的Glide版本是4.6.1的,Matisse中集成的是3.7.0的,是有区别的,具体你可以看这里 带你全面了解Glide 4的用法,你也可以用Picasso。...会报异常 java.lang.NoSuchMethodError: com.bumptech.glide.RequestManager.load 解决方案就是重新自定义图片加载方式GlideEngine...,哇的哭出声 使用 你以为集成都这么坎坷了,使用应该很方便吧,no啊大胸弟, 虽然集成之前我看到150+的Issues有点头皮发麻,果然没让我失望,坎坷的路还长着呢。...实际上MimeType这个枚举类中根本就没有ofImage 所以你的应该是这样的 Matisse.from(MainActivity.this) .choose(MimeType.of(MimeType.JPEG

    2K10

    安卓第三方库

    中subscription导致内存泄漏 RxPermissions:基于RxJava开发的用于帮助在Android 6.0中处理运行时权限检测 retrofit:目前最好用的网络通讯库,应该都用过吧 okhttp...:okhttp和retrofit做网络通讯是绝配 greenDAO:ORM数据库,能配合rxjava使用 logger:Log库,让打印的Log变得非常漂亮 glide:Google出品的图片加载库,这里有非常好的指导文档...:https://mrfu.me/2016/02/27/Glide_Getting_Started/ BaseRecyclerViewAdapterHelper:很好用的RecyclerView多功能适配器库...,项目里我并没有直接用这个库,而是按我自己使用习惯在它较早的代码上做了些改动 recyclerview-animators:RecyclerView的动画库,内置了非常多的动画效果 CircleImageView...:非常常用的用来显示圆形头像的库 PhotoView:可根据手势进行缩放的图像库,这个也很常见 AndroidImageSlider:展示头部Banner的库,动画效果很多,不过需要依赖picasso和

    46410

    Glide ‘优’ 与 ‘愁’

    后来Google在2014年的google I/O大会上发布的官方app中使用的 bumptech/glide 闯入大家的视野, Google 推荐大家图片加载使用 Glide....除此之外也可以做一下简单的对比 Glide VS Picasso 双胞胎兄弟之间的对比,使用方式相同,但 Glide 之所以胜出,不仅仅是 Google的推荐,更多应该归功于 GIF 的支持。...而且官方还专门写了个demo,把几大流行的开源库都集成进去,为了说明自己的图片加载库加载同样的图片速度更快,内存占用更低。...因为这样 glide 不知道要加载多大的图片给我们才好,在他的接口(Sizes and dimensions)中也有体现。...普通的imageview其实也还好,如果放在列表(RecyclerView)中, 由于我们并不知道目标图片大小是多大的,所以我们选择了wrap_content,那么在上下来回滚动过程中,就会导致图片一会大一会小的

    1K10

    5个Android 手势和动画方面深度面试题

    onInterceptTouchEvent:在ViewGroup中调用,用于决定是否拦截事件。 onTouchEvent:在View中调用,用于处理触摸事件。...3、 手势识别: 使用GestureDetector类来识别简单的手势,如轻触、滑动、长按等。 通过分析MotionEvent中的数据(如位置、时间、动作等)来实现更复杂的手势识别。...解答: 实现流畅的滚动列表需要考虑以下几个方面: 1、 使用ViewHolder模式: 在RecyclerView的适配器中使用ViewHolder模式来缓存视图,减少findViewById的调用。...2、 优化布局: 使用ConstraintLayout或LinearLayout来减少布局的复杂度。 3、 异步加载图片: 使用图片加载库(如Glide或Picasso)的异步加载功能。...6、 使用RecyclerView: 相比ListView,RecyclerView提供了更好的性能和更灵活的布局管理。 通过这些方法,可以显著提高滚动列表的性能,提升用户体验。

    61410

    Android源码分析:手把手带你分析 Glide的缓存功能

    由于文章较长,希望读者先收藏 & 预留足够时间进行查看 请先阅读文章: Android源码分析:这是一份详细的图片加载库Glide源码讲解攻略 Android图片加载库:最全面解析Glide用法...如,在 RecyclerView 上下滑动,而RecyclerView中只要是Glide加载过的图片,都可以直接从内存中读取 & 展示,从而不需要重复从 网络或硬盘上读取,提高图片加载效率。...(即最终的图像:降低分辨率后 / 或者转换后 ,不缓存原始图片 实现原理 使用Glide 自定义的DiskLruCache算法 该算法基于 Lru 算法中的DiskLruCache算法,具体应用在磁盘缓存的需求场景中...写入 / 将转换后的图片写入磁盘缓存 从 上篇文章Android:这是一份详细的图片加载库Glide源码讲解攻略中,Glide 在第3步 into()中执行图片线程 run()里的 decode()...---- 步骤9:写入 内存缓存 Glide 将图片写入 内存缓存的时机:图片加载完成后 、图片显示出来前 写入 内存缓存 的具体地方:上篇文章中Android:这是一份详细的图片加载库Glide源码讲解攻略当图片加载完成后

    2.4K21

    金三银四要来了?不要慌,Android高级面试题刷一刷

    从网络加载一个10M的图片,说下注意事项? http怎么知道文件过大是否传输完毕的响应? 谈谈你对WebSocket的理解? WebSocket与socket的区别?...你认为Rxjava的线程池与你们自己实现任务管理框架有什么区别? 图片加载框架:Glide实现原理 这个库是做什么用的? 为什么要在项目中使用这个库? 这个库都有哪些用法?对应什么样的使用场景?...Glide源码机制的核心思想 你从这个库中学到什么有价值的或者说可借鉴的设计思想? Glide如何确定图片加载完毕? Glide使用什么缓存? Glide内存缓存如何控制大小?...leakCannary中如何判断一个对象是否被回收?如何触发手动gc?c层实现?...Android的生命周期和启动模式 ListView和RecyclerView系列 想改变listview的高度,怎么做? listview跟recyclerview上拉加载的时候分别应该如何处理?

    1.7K30

    壹二APP开发实践回顾总结出40条精要

    ;最后采用的是腾讯x5内核; 5、Https 证书支持(浏览器获取证书方式); 6、Glide v3.7 加载Gif 的时候,缓存策略不能使用Result,不然显示不出来; 7、一个类中内部类又调用其他内部类的...19、WebView 如果没有显示具体内容,检查是否是布局错误。 20、 elevation 只设置某一边的效果,可以通过 setOutlineProvider() 来确定。...25、 Glide 默认使用的是 DecodeFormat.PREFER_RGB_565 的图片编码格式,如果有透明度,或者加载出现误差,应当要切换到 DecodeFormat.PREFER_ARGB_...链接 29、 RecyclerView 更新数据如果有动画的话,那么应该先清除所有的数据,再添加新的数据,不然动画效果和以前的列表会同时出现,特别诡异。...32、TextView 指定最大行数 应该用的都多,如果高度又需要固定,可以使用LinearLayout的weight指定,但是weight是不建议嵌套使用的,其实这里可以考虑使用 minLine 来限定最小高度

    1K40

    金九银十要来了?不要慌,这些Android BAT高级面试题刷一刷

    从网络加载一个10M的图片,说下注意事项? http怎么知道文件过大是否传输完毕的响应? 谈谈你对WebSocket的理解? WebSocket与socket的区别?...你认为Rxjava的线程池与你们自己实现任务管理框架有什么区别? 图片加载框架:Glide实现原理 这个库是做什么用的? 为什么要在项目中使用这个库? 这个库都有哪些用法?对应什么样的使用场景?...Glide源码机制的核心思想 你从这个库中学到什么有价值的或者说可借鉴的设计思想? Glide如何确定图片加载完毕? Glide使用什么缓存? Glide内存缓存如何控制大小?...leakCannary中如何判断一个对象是否被回收?如何触发手动gc?c层实现?...Android的生命周期和启动模式 ListView和RecyclerView系列 想改变listview的高度,怎么做? listview跟recyclerview上拉加载的时候分别应该如何处理?

    1.2K00

    安卓易学,爬坑不易——腾讯老司机的RecyclerView局部刷新爬坑之路

    这个是RecyclerView自带的更新动画效果导致的? 这个是因为图片加载框架(glide 的 animte)的动画效果导致的?...getView中(RecyclerView中是onBindViewHolder)加载图片的时候,设置一个tag,当发现这个imageView的tag和之前的tag一致时就不加载 二、带着思考,就去尝试吧...然而,那种渐变的闪动消失了,但是,取而代之的是一种更加不可接受的闪动,这里就不用gif展示了,因此原因也并不在此处。 3、对于对三种说法,我也去尝试了一下将glide加载改为: ?...好吧,此时已经有点崩溃了,显然这个也不是我要的结果,那么此时是否应该在静下来想一想,自己对于可能的几种原因做过的一些对策,是否有哪里遗漏了。经过思考,发现并没有!!...然来,onBindViewHolder有这么一个重载方式,如是我也这么做了,在下面这个重载中,去更新我想更新的控件: ? 然后,更新的方式变成了这种: ? 是骡子是马,那就在遛一遛吧!

    93020

    手把手教你用RecyclerView实现猫眼电影选择效果

    一、简介 在官方推出RecyclerView 控件之后,越来越多的人都使用它代替之前的ListView。除了最普通的列表显示,RecyclerView还可以其他的很多效果,例如Banner等。...在最近的一个电影票平台项目中,使用RecyclerView实现了仿猫眼的电影选择控件,如下图所示: 以上图为例,我们的需求如下: 每一次滑动都让图片保持在中间。...中,我们如果需要滑动到某一位置,一般会使用RecyclerView.smoothScrollToPosition(idx)方法,但是在此处我们在设置item的点击事件时,不能直接使用这个方法,因为这个方法只会将...Glide框架加载图片,因为加载的是网络url,在使用高斯模糊的时候我们需要使用方法将url转为bitmap,因为是网络,我们不能再主线程里完成,因此需要新开一个线程,在Glide中,可以设定一个占位符...,即网络图片加载之前的默认图片,然后在加载图片时可以使用transition进行淡入淡出,这里我们新建一个Map来缓存上一张图片的背景图片,然后当做下一张图片的占位符,便可以实现背景淡入淡出效果。

    1.3K00

    手把手教你搭建android模块化项目框架(一)选择篇

    经典框架选取总模式:mvvm-databinding图片加载:glide事件总线:kotlin.flow或eventbus,本篇选用kotlin.flow撸出自己的事件总线线程调度:kotlin.CoroutineScope...动画等:lottie or svga or pag不过本篇不教大家如何使用该框架功能。因为单一的工具并非框架重点功能。其他:core-ktx,lifecycle,androidx系列库等。...依赖注入:hilt(可选),依赖注入是否需要使用,取决于预估的项目规格大小,本篇抛砖引玉,会带入一点hilt的使用,不过并非重点,可酌情选取使用。...上述基本描写了目前大多数项目使用的三方及jetpack框架,后续可能补充其他选择。如:lifecycle等,不过由于是一方库,所以不过多描述。...下面开始引入:创建android项目这一步不多说,但是为了引入项目的一致性,我们创建deps.gradle文件,将项目中所有引入的库都放在该文件下,避免各个模块引入的库版本不一致。

    97222

    Android笔记:使用Glide加载图片刷新时会闪烁

    可能这个问题很常见,大家也有不少人解决了,大部分人用的方法一和二如果你还没解决的话,那么看这篇文章就对了 使用RecyclerView,Glide加载图片,当点击图片进行刷新,不管是局部刷新还是全部刷新的时候...,都会使用glide重新加载图片,这时候如果glide加载图片的时候没设置好就会出现刷新的时候闪烁的问题,当然这是我出现的问题。...将DefaultItemAnimator类里的代码全部copy到自己写的动画类中,然后做一些修改。...translationY(0).setDuration(getChangeDuration()).setListener(new VpaListenerAdapter() { ... } 也就是说分别去掉上述代码中的...后来发现原来是glide设置了跳过内存缓存skipMemoryCache(true)导致的

    2.9K20

    RecyclerView notifyItem闪烁的问题

    功能都顺利实现,美中不足的是当前Item闪了一下,QA甚至为此提了Bug,一开始以为是图片加载库的问题,之后随着图片加载库从ImageLoader换成Picaso,又换成Glide,这个Bug一直如影随形...,我们可以通过以下代码为Item增加动画效果: recyclerView.setItemAnimator(new DefaultItemAnimator()); 在之前的版本中,当数据集合发生改变时...,调用notifyItem*()方法会触发RecyclerView的默认动画,而这个动画我并不想要,但是似乎并没有合适的办法来屏蔽这个动画,QA甚至认为这是个Bug,需要修复。...但是这样不就失去使用RecyclerView的优势和意义了吗? 最后我是通过重写RecyclerView的动画来解决这一“Bug”。...到自己写的动画类中,然后做一些修改。

    4.2K50

    优雅地实现RecyclerView的上拉加载

    先说说我们希望的RecycerView应该有的样子:上拉加载更多,没有更多,加载错误然后点击重试。...至于通常的下拉刷新我同意Google设计下拉刷新的理念,即下拉刷新是View的行为,应该让View自己来实现,而下拉刷新有着更加广泛的应用,几乎需要交互的信息显示界面都是需要下拉刷新功能的。...所以RecyclerView的下拉刷新应该由她的父空间来实现,有过有这个需求的话,因为也不是一定需要下拉刷新。这里下拉刷新控件我推荐秋百万的下拉刷新控件,6k+的star,值得信赖。...先谈谈思路,其实很简单,就是通过getItemViewType()加载不同的布局,这里就是把加载更多布局封装进adapter中。...接着上篇写的数据加载接口来看,开始加载的时候加入加载的itemView,完成加载后去掉它。通过给RecyclerView添加的滑动事件来判断加载时机。

    1.1K40
    领券