android Glide介绍

article/2025/10/12 12:37:05

目录

1.Glide的基本使用

1. 介绍

2. Glide占位符

2.Glide的进阶使用

1. 过渡动画

2. 变化 transform()

3. Generated API

4. GlideExtension与GlideOption


1.Glide的基本使用

1. 介绍

Glide是一个快速高效的Android图片加载库,可以自动加载网络、本地文件,app资源中的图片,注重于平滑的滚动。

开源地址:GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling 中文文档:Glide v4 : 快速高效的Android图片加载库

引入Glide:

implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'

基本使用: Glide.with([fragment/Context/View]) .load(url) .into(imageView)

2. Glide占位符

Glide4中占位图的使用方法,包括(placeholder, error,fallback)三种占位图

  1. placeholder 正在请求图片的时候展示的图片

  2. error 如果请求失败的时候展示的图片 (如果没有设置,还是展示placeholder的占位符)

  3. fallback 如果请求的url/model为 null 的时候展示的图片 (如果没有设置,还是展示placeholder的占位符)

示例

RequestOptions requestOptions = new RequestOptions().placeholder(R.drawable.hold).error(R.drawable.error).fallback(R.drawable.empty).override(100,100);
Glide.with(this).load("https://i.328888.xyz/2023/02/20/X1nsd.jpeg1").apply(requestOptions).into(imageView);

2.Glide的进阶使用

1. 过渡动画

定义 Glide 如何从占位符到新加载的图片,或从缩略图到全尺寸图像过渡。

Glide默认是Drawable 此时用DrawableTransitionOptions

如果使用了.asBitmap()方法 此时需要对应使用BitmapTransitionOptions

withCrossFade() 传int就是过渡动画显示的ms数
传DrawableCrossFadeFactory就是自定义工厂  可用于避免占位图显示

 

交叉淡入(避免占位图还能显示)

示例

//自定义工厂使用
DrawableCrossFadeFactory factory =new DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build();
Glide.with(this).load("https://i.328888.xyz/2023/02/20/X1nsd.jpeg").apply(requestOptions).transition(DrawableTransitionOptions.withCrossFade(factory)).into(imageView);

注意:

为了提升性能,请在使用 Glide 向 ListView , GridView, 或 RecyclerView 加载图片时考虑避免使用动画。

2. 变化 transform()

获取资源并修改它,然后返回被修改后的资源。通常变换操作是用来完成剪裁或对位图应用过滤器。比如对图片 进行圆角配置。

Glide.with(this).load(URL).transform(...).into(iv);
  1. CircleCrop:圆角

  2. RoundedCorners: 四个角度统一指定

  3. GranularRoundedCorners:四个角度单独指定

  4. Rotate:旋转

3. Generated API

1、添加 Glide注解处理器的依赖:

annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'

2、在 Application 模块中包含一个 AppGlideModule 的实现

@GlideModule
public class MyAppModule extends AppGlideModule {
}

此时我们能够更简单的完成占位符等配置:

GlideApp.with(this).load("").placeholder(R.drawable.hold).into(imageView);

4. GlideExtension与GlideOption

定义一个在频繁使用的选项集合。

@GlideExtension
public class MyAppExtension {private MyAppExtension() {} // utility class
​@GlideOptionpublic static BaseRequestOptions<?> defaultImg(BaseRequestOptions<?> options) {return options.placeholder(R.drawable.hold).error(R.drawable.error).fallback(R.drawable.error);}
}

使用(加一个defaultImg()方法即可)

GlideApp.with(this).load("").placeholder(R.drawable.hold).defaultImg().into(imageView);

http://chatgpt.dhexx.cn/article/sh8blGQt.shtml

相关文章

Glide(二)Glide的with,load,into

Glide的with&#xff0c;load&#xff0c;into 在Glide的常规使用中&#xff0c;我们是这样使用的&#xff1a; protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ImageView imageView fin…

Glide学习

Glide框架学习 介绍with&#xff08;生命周期&#xff09;into缓存LRU缓存三级缓存为什么要有两种内存缓存加载顺序活动缓存为什么使用弱引用 介绍 常规方式&#xff1a;Glide.with(this).load(URL).into(imageView) 虽然with方法重载了很多个&#xff0c;我们可以传入不同的对…

Glide讲解

目录 Glide简介Glide的优点Glide的生命周期Glide如何实现图片缓存的内存缓存实现原理磁盘缓存实现原理引入缓存的目的Glide缓存流程从内存缓存读取总结从磁盘缓存读取总结写入磁盘缓存写入内存缓存汇总 Glide源码总结图解with&#xff08;&#xff09;load&#xff08;&#xf…

Glide详解

现在Android上的图片加载框架非常成熟&#xff0c;从最早的老牌图片加载框架UniversalImageLoader&#xff0c;到后来Google推出的Volley&#xff0c;再到后来的新兴军Glide和Picasso&#xff0c;当然还有Facebook的Fresco。每一个都非常稳定&#xff0c;功能也都十分强大。但是…

Android Glide

1.Glide Glide是Google主导的图片加载开源库。它有很多优势&#xff1a; ①使用简单&#xff0c;链式调用。 ②支持多种图片格式&#xff0c;如Gif、WebP、缩略图、Video等。 ③支持生命周期集成。Glide可以感知调用页面的生命周期&#xff0c;根据Activity或Fragment的生命…

[软件更新]gladder2.0.3.3

介绍 gladder是一个Firefox插件&#xff0c;名字被解释为Great Ladder (Ladder for Great Firewall)&#xff0c;目标是帮助人们跨过Great Firewall访问境外被查封的网站。 安装 https://addons.mozilla.org/en-US/firefox/addon/2864 (点击页面中的Install Now按钮) 功能 * 自…

飞机游戏代码(JAVA)

&#xff2d;yGameFrame类: 主要的调用类 package sc.wh.game;import javax.swing.JFrame; import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import sc.wh.game.*; import java.awt.event.KeyAdapte…

基于java的拼图经典游戏(附代码)

拼图游戏是一款经典的益智游戏&#xff0c;游戏开始前图片被随机打乱&#xff0c;空块位于最右下角&#xff0c;玩家通过点击空块周围图片或者按键方式对图片和空块进行相互交换&#xff0c;直到所有图片都回到原位即为游戏胜利。 本次制作的拼图游戏运行界面如下&#xff1a;…

java推箱子游戏源代码_java实现推箱子小游戏(附源码)

先上效果图 可以通过AWSD进行移动和推箱子 自己弄出来的代码玩起来还是很有意思的。 代码一共是三个.java文件,代码内容如下所示 package ss; import java.awt.Graphics; import java.awt.Image; import java.awt.Point; import java.awt.event.KeyEvent; import java.awt.eve…

免费Java游戏源代码素材推荐

家人们&#xff0c;最近我找到了一个很好用的Java游戏源代码免费素材网站 资源贼多&#xff0c;重点是免费&#xff01;&#xff01;&#xff01;白嫖一时爽&#xff0c;一直白嫖一直爽&#xff0c;嘿嘿嘿&#xff01;&#xff01;&#xff01;感兴趣的可以进去看看 接下来就…

java连连看代码_java实现连连看游戏

本文实例为大家分享了java实现连连看游戏的具体代码,供大家参考,具体内容如下 代码会实现共享的,这个是截图 代码: package com.lr.bean; import java.util.Scanner; import java.util.Random; import com.lr.bean.Point; public class Link{public static void main(Strin…

JAVA版扫雷游戏,清晰易懂,注释多

这是一篇关于JAVA的扫雷游戏&#xff0c;所有的图片均用文字代替&#xff0c;代码可直接运行。 文章目录 开发环境一、下载方法二、运行效果展示三、代码部分1.代码如下 总结 开发环境 开发工具&#xff1a;eclipse2021-12 JDK版本&#xff1a;JDK15.0.1 一、下载方法 链接&a…

猜数字游戏(Java源代码)

游戏后台随机生成1-20之间的5个数&#xff0c;未猜中提示“未命中”&#xff0c;继续猜测&#xff0c;猜中提示“运气不错&#xff0c;猜中了”&#xff0c;并输出数据出现的第一次位置源代码&#xff1a; import java.util.Random; import java.util.Scanner;//游戏后台随机…

JAVA实现扫雷游戏

后记&#xff1a;经评论区提醒&#xff0c;发现有两个bug没考虑到&#xff0c;感谢大家的提醒 bug1&#xff1a;绘制雷的时候有可能把两个雷随机到同样的位置。解决方法是在绘制雷的for循环内&#xff0c;rRow和rCol生成后做一个检测即可&#xff1a; /* 绘制地雷 */private v…

Java抽奖小游戏(包含代码)

情景&#xff1a; 假如从50个数字中确定10个中奖号码。 中奖号码要从50个数字中随机产生&#xff0c;中奖号码不可以重复&#xff0c;并对中奖号码进行排序。 解题思路&#xff1a; 首先建立一个长度为n号码的号码库&#xff1a;建立一个数组存放k个中奖号码抽取k个中奖号码。…

贪吃蛇java游戏代码_java实现贪吃蛇游戏代码(附完整源码)

先给大家分享源码&#xff0c;喜欢的朋友点此处下载。 游戏界面 GUI界面 java实现贪吃蛇游戏需要创建一个桌面窗口出来&#xff0c;此时就需要使用java中的swing控件 创建一个新窗口 JFrame frame new JFrame("贪吃蛇游戏"); //设置大小 frame.setBounds(10, 10, 90…

JAVA 实现生命游戏

生命游戏的规则: 生命游戏中&#xff0c;对于任意细胞&#xff1a;每个细胞有两种状态&#xff1a;存活或死亡。每个细胞与以自身为中心的周围八格细胞产生互动。    1.当前细胞为存活状态时&#xff0c;当周围的活细胞低于2个时&#xff0c; 该细胞因孤独而死亡;    2.当…

Java五子棋全代码

用Java编写简单的五子棋 前言 这两天在空闲时间做了个五子棋项目&#xff0c;分享给大家看一下&#xff0c;界面是这样的&#xff1a;        呜呜呜&#xff0c;界面很丑我知道&#xff0c;本人虽有几年PS基础&#xff0c;但知识浅薄&#xff0c;审美观不尽人意&#xff…

五子棋小游戏 java版(代码+详细注释)

游戏展示 这周闲来无事&#xff0c;再来写个五子棋小游戏。基本功能都实现了&#xff0c;包括人人对战、人机对战。界面布局和功能都写的还行&#xff0c;没做到很优秀&#xff0c;但也不算差。如有需要&#xff0c;做个java初学者的课程设计或者自己写着玩玩也都是不错的&…

【Java实现小游戏】飞翔的小鸟(源码)

游戏玩法&#xff1a;通过鼠标点击使小鸟上下移动穿过柱子并完成得分&#xff0c;小鸟碰到柱子或掉落到地面上都会结束游戏。 &#xff08;游戏内图片&#xff09; 下面是实现这个游戏的代码&#xff1a; Brid类&#xff1a; package bird;import org.omg.CORBA.IMP_LIMIT;im…