介绍: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图片框架的使用相关推荐

  1. android glide图片框架,【Android 进阶】图片载入框架之Glide(示例代码)

    简单介绍 在泰国举行的谷歌开发人员论坛上,谷歌为我们介绍了一个名叫 Glide 的图片载入库,作者是 bumptech.这个库被广泛的运用在 google 的开源项目中,包含 2014 年 googl ...

  2. Android Glide图片加载框架(四)回调与监听

    文章目录 Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源码解析之with() Android Gl ...

  3. Android Glide图片加载框架(三)缓存机制

    文章目录 一.缓存简介 二.缓存用法 内存缓存方式 磁盘缓存方式 三.缓存KEY 四.内存缓存 内存缓存流程 五.磁盘缓存 磁盘缓存流程 Android Glide图片加载框架系列文章 Android ...

  4. Android Glide图片加载框架(二)源码解析之into()

    文章目录 一.前言 二.源码解析 1.into(ImageView) 2.GlideContext.buildImageViewTarget() 3.RequestBuilder.into(Targe ...

  5. Android Glide图片加载框架(二)源码解析之load()

    文章目录 一.前言 二.源码分析 1.load() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图片加载框架(二)源 ...

  6. Android Glide图片加载框架(二)源码解析之with()

    文章目录 一.前言 二.如何阅读源码 三.源码解析 1.with() Android Glide图片加载框架系列文章 Android Glide图片加载框架(一)基本用法 Android Glide图 ...

  7. Android Glide图片加载框架(一)基本用法

    文章目录 一.前言 二.简介 三.基本用法 第一步:调用 Glide.with() 方法创建加载图片的实例 第二步:调用 load() 方法指定待加载的图片资源 第三步:调用 into() 方法绑定显 ...

  8. Android Glide 图片加载框架解析

    在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载框架,作者是  bumptech,这个库被广泛的应用在 Google 开源项目中,包括 2014 年 Google I/O ...

  9. Android 常用图片框架对比

    在Android中,进行内存优化,最重要的优化处理是对图片进行内存的优化处理,毕竟图片占用的内存是非常大的,对于图片的内存处理,是android中内存优化的重中之重.目前开源的4大图片处理框架都对图片 ...

最新文章

  1. GBDT原理及在公司中地位 转载
  2. 一种比较兼容的Excel报表导出方法
  3. contrastive loss function (papers)
  4. android android:process=,Android app启动流程
  5. JavaScript 中的内存泄露模式
  6. Dubbo监控平台安装
  7. Laravel生命周期
  8. 秒懂云通信:如何用阿里云语音通知服务(小白指南)
  9. linux关于bashrc与profile的区别(转)
  10. 计算机办公软件中级考试题怎么做,计算机办公软件考试试题
  11. libjpeg-turbo 2.1.2 交叉编译
  12. usb3.0速度测试软件,主流B75原生SATA3.0和USB3.0速度测试
  13. 美团前端面试题(附答案)
  14. 在邮箱中用html写邮件
  15. 论文:Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection通过划块的方式进行小目标检测
  16. 光纤存储服务器虚拟化,光纤存储DELL MD3600连接VMware ESX 65
  17. Ubuntu生成so共享库的方法
  18. dex2oat程序参数总结
  19. 远程操控计算机,将手机平板与电脑连接起来--随时办公
  20. cisco Switching-vlan

热门文章

  1. mac屏幕录像怎么录-ScreenFlow for mac完整安装-screenflow录屏录声音的方法
  2. HTML学生个人网站作业设计——HTML+CSS+JavaScript优分期大学生分期购物商城(7页)
  3. 计算机组成原理 启航教育,2021计算机考研:计算机组成原理知识点CPU的功能和基本结构...
  4. 阿里云生态峰会实录(中)
  5. 三位一撇:处理数字12345.67——12,345.67
  6. 《惢客创业日记》2020.11.15-17(周日)谁有谁的四十不惑?
  7. Java实现京东登录
  8. antdesign 柱状图_010-ant design pro advanced 图表
  9. java实现Word文档(doc、docx)在线查看功能(前台+后台)
  10. RoI Pooling 和 RoI Align