Android Glide图片框架的使用
介绍:Glide是Google推荐的一套快速高效的图片加载框架,功能强大且使用方便
基本使用
添加Glide依赖
//Glideimplementation 'com.github.bumptech.glide:glide:4.11.0'annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
注册权限(网络权限和访问SD卡的权限)
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
在手机上展示一张网络图片
iv=findViewById(R.id.iv);Glide.with(this)//加载网络图片.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fcdn.duitang.com%2Fuploads%2Fitem%2F201303%2F29%2F20130329205806_kTTnv.thumb.700_0.jpeg&refer=http%3A%2F%2Fcdn.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1628905531&t=817e2ab0825790a0f4772bc2f22f0998")//展示到imageview.into(iv);
效果图:
占位符的使用
placeholder 正在请求图片的时候展示的图片
error 如果请求失败的时候展示的图片
fallback 请求为空的时候展示的图片
请求配置
RequestOptions requestOptions=new RequestOptions().placeholder(R.drawable.zhengzai)//正在请求图片的时候展示的图片.error(R.drawable.shibai)//如果请求失败的时候展示的图片.fallback(R.drawable.kongde)//请求为空的时候展示的图片.override(100,100);//指定加载图片的大小
在.Glide方法中使用.apply方法使用配置
Glide.with(this)//加载网络图片.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fcdn.duitang.com%2Fuploads%2Fitem%2F201303%2F29%2F20130329205806_kTTnv.thumb.700_0.jpeg&refer=http%3A%2F%2Fcdn.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1628905531&t=817e2ab0825790a0f4772bc2f22f0998")//展示到imageview.apply(requestOptions).into(iv);
进阶使用
图片的过渡动画效果
创建DrawableCrossFadeFactory对象设置.setCrossFadeEnabled(true),使动画结束后占位符消失
//占位符完成动画时消失 setCrossFadeEnabled(true),不设置的话占位符仍然保留DrawableCrossFadeFactory factory=new DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build();
在.Glide方法中使用.transition方法设置交叉淡入的动画效果
Glide.with(this)//加载网络图片.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fcdn.duitang.com%2Fuploads%2Fitem%2F201303%2F29%2F20130329205806_kTTnv.thumb.700_0.jpeg&refer=http%3A%2F%2Fcdn.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1628905531&t=817e2ab0825790a0f4772bc2f22f0998")//展示到imageview.apply(requestOptions)//交叉淡入的动画效果.transition(DrawableTransitionOptions.withCrossFade(factory)).into(iv);
变换,改变图片的样式
圆角 CircleCrop
四个角度统一指定 RoundedCorners (需要给弧度参数)
四个角度单独指定 GranularRoundedCorners(需要给四个角的弧度参数)
旋转 Rotate(需要给旋转角度参数)
只演示圆角效果
Glide.with(this)//加载网络图片.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201603%2F22%2F20160322214908_wSYsj.jpeg&refer=http%3A%2F%2Fb-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1628909386&t=57e3118aa2ac64789ba72e2b53e7677b")//展示到imageview.apply(requestOptions)//交叉淡入的动画效果.transition(DrawableTransitionOptions.withCrossFade(factory))//图片的变换效果CircleCrop圆角,RoundedCorners四个角度统一指定,GranularRoundedCorners四个角度单独指定,Rotate旋转.transform(new CircleCrop()).into(iv);
整个MainActivity.java代码
package com.cdw.studyglide;import androidx.appcompat.app.AppCompatActivity;import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.ImageView;import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.bumptech.glide.load.resource.bitmap.GranularRoundedCorners;
import com.bumptech.glide.load.resource.bitmap.Rotate;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
import com.bumptech.glide.request.RequestOptions;
import com.bumptech.glide.request.transition.DrawableCrossFadeFactory;public class MainActivity extends AppCompatActivity {private ImageView iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);iv=findViewById(R.id.iv);RequestOptions requestOptions=new RequestOptions().placeholder(R.drawable.zhengzai)//正在请求图片的时候展示的图片.error(R.drawable.shibai)//如果请求失败的时候展示的图片.fallback(R.drawable.kongde)//请求为空的时候展示的图片.override(100,100);//指定加载图片的大小//占位符完成动画时消失 setCrossFadeEnabled(true),不设置的话占位符仍然保留DrawableCrossFadeFactory factory=new DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build();Glide.with(this)//加载网络图片.load("https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201603%2F22%2F20160322214908_wSYsj.jpeg&refer=http%3A%2F%2Fb-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1628909386&t=57e3118aa2ac64789ba72e2b53e7677b")//展示到imageview.apply(requestOptions)//交叉淡入的动画效果.transition(DrawableTransitionOptions.withCrossFade(factory))//图片的变换效果CircleCrop圆角,RoundedCorners四个角度统一指定,GranularRoundedCorners四个角度单独指定,Rotate旋转.transform(new CircleCrop()).into(iv);}
}
效果图:
结束,感谢观看
Android Glide图片框架的使用相关推荐
- android glide图片框架,【Android 进阶】图片载入框架之Glide(示例代码)
简单介绍 在泰国举行的谷歌开发人员论坛上,谷歌为我们介绍了一个名叫 Glide 的图片载入库,作者是 bumptech.这个库被广泛的运用在 google 的开源项目中,包含 2014 年 googl ...
- Android Glide图片加载框架(四)回调与监听
文章目录 Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源码解析之with() Android Gl ...
- Android Glide图片加载框架(三)缓存机制
文章目录 一.缓存简介 二.缓存用法 内存缓存方式 磁盘缓存方式 三.缓存KEY 四.内存缓存 内存缓存流程 五.磁盘缓存 磁盘缓存流程 Android Glide图片加载框架系列文章 Android ...
- Android Glide图片加载框架(二)源码解析之into()
文章目录 一.前言 二.源码解析 1.into(ImageView) 2.GlideContext.buildImageViewTarget() 3.RequestBuilder.into(Targe ...
- Android Glide图片加载框架(二)源码解析之load()
文章目录 一.前言 二.源码分析 1.load() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源 ...
- Android Glide图片加载框架(二)源码解析之with()
文章目录 一.前言 二.如何阅读源码 三.源码解析 1.with() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图 ...
- Android Glide图片加载框架(一)基本用法
文章目录 一.前言 二.简介 三.基本用法 第一步:调用 Glide.with() 方法创建加载图片的实例 第二步:调用 load() 方法指定待加载的图片资源 第三步:调用 into() 方法绑定显 ...
- Android Glide 图片加载框架解析
在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载框架,作者是 bumptech,这个库被广泛的应用在 Google 开源项目中,包括 2014 年 Google I/O ...
- Android 常用图片框架对比
在Android中,进行内存优化,最重要的优化处理是对图片进行内存的优化处理,毕竟图片占用的内存是非常大的,对于图片的内存处理,是android中内存优化的重中之重.目前开源的4大图片处理框架都对图片 ...
最新文章
- GBDT原理及在公司中地位 转载
- 一种比较兼容的Excel报表导出方法
- contrastive loss function (papers)
- android android:process=,Android app启动流程
- JavaScript 中的内存泄露模式
- Dubbo监控平台安装
- Laravel生命周期
- 秒懂云通信:如何用阿里云语音通知服务(小白指南)
- linux关于bashrc与profile的区别(转)
- 计算机办公软件中级考试题怎么做,计算机办公软件考试试题
- libjpeg-turbo 2.1.2 交叉编译
- usb3.0速度测试软件,主流B75原生SATA3.0和USB3.0速度测试
- 美团前端面试题(附答案)
- 在邮箱中用html写邮件
- 论文:Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection通过划块的方式进行小目标检测
- 光纤存储服务器虚拟化,光纤存储DELL MD3600连接VMware ESX 65
- Ubuntu生成so共享库的方法
- dex2oat程序参数总结
- 远程操控计算机,将手机平板与电脑连接起来--随时办公
- cisco Switching-vlan
热门文章
- mac屏幕录像怎么录-ScreenFlow for mac完整安装-screenflow录屏录声音的方法
- HTML学生个人网站作业设计——HTML+CSS+JavaScript优分期大学生分期购物商城(7页)
- 计算机组成原理 启航教育,2021计算机考研:计算机组成原理知识点CPU的功能和基本结构...
- 阿里云生态峰会实录(中)
- 三位一撇:处理数字12345.67——12,345.67
- 《惢客创业日记》2020.11.15-17(周日)谁有谁的四十不惑?
- Java实现京东登录
- antdesign 柱状图_010-ant design pro advanced 图表
- java实现Word文档(doc、docx)在线查看功能(前台+后台)
- RoI Pooling 和 RoI Align