IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android中Glide的使用 -> 正文阅读

[移动开发]Android中Glide的使用

1.1 Glide的概述

Glide,就像 Picasso,可以从多个源去加载和显示图片,同时也兼顾缓存和在做图片处理的时候维持一个低内存消耗。它已经在 Google 官方 APP (如 Google 2015开发者大会的应用程序)中使用了,就和 Picasso 一样受欢迎。

1.2 Glide的引入

1.2.1 Glide的配置

在AndroidMainFest.xml中添加以下代码:

dependencies {
    implementation 'com.github.bumptech.glide:glide:4.11.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
}

其中compiler库是用于生成Generated API的。Generated API 目前可以在 Application 模块内直接使用。这一限制可以让我们仅持有一份 Generated API,而不是各个 Library 和 Application 中均有自己定义出来的 Generated API。这一做法会让 Generated API 的调用更简单,并确保 Application 模块中 Generated API 调用的选项在各处行为一致。?

1.2.2 Glide的基本属性

Glide建造者要求最少有三个参数:

  1. with(Fragment fragment/Context context),很多AndroidAPI调用,Context是必须的。
  2. load(String imageUrl),这个ImageUrl就是我们要传的图片地址。
  3. into(ImageView imageView),这个就是我们想把URL 加载到哪个ImageView中。

1.2.3 Glide的介绍

Glide的load()可以加载一下几种类型的图片资源:

参数说明
.load(String string)string可以为一个文件路径、uri或者url
.load(Uri uri)uri类型
.load(File file)文件
.load(Integer resourceId)资源Id,R.drawable.xxx或者R.mipmap.xxx
.load(byte[] model)byte[]类型
.load(T model)自定义类型

1.3 Glide的使用

1.3.1 占位符

Glide允许用户指定三种不同类型的占位符,分别在三种不同场景使用:

  • placeholder(占位符):占位符是当请求正在执行时被展示的 Drawable 。当请求成功完成时,占位符会被请求到的资源替换。
  • error(错误符):在请求永久性失败时展示。
  • fallback(后备回调符):在请求的url/model为?null?时展示。

1.3.2 RequestOptions(请求选项)

可用的选项包括(但不限于):

  • 占位符(Placeholders)
  • 转换(Transformations)
  • 缓存策略(Caching Strategies)
  • 组件特有的设置项,例如编码质量,或Bitmap的解码配置等。

?1.3.3 TransitionOptions(过渡选项)

TransitionOptions用于决定你的加载完成时会发生什么。TransitionOptions可以应用以下变换:

  • View淡入
  • 与占位符交叉淡入
  • 或者什么都不发生

?1.3.4?RequestBuilder(请求骨架)

RequestBuilder 是Glide中请求的骨架,负责携带请求的url和你的设置项来开始一个新的加载过程。使用?RequestBuilder 可以指定:

  • 你想加载的资源类型(Bitmap, Drawable, 或其他)
  • 你要加载的资源地址(url/model)
  • 你想最终加载到的View
  • 任何你想应用的(一个或多个)RequestOption?对象
  • 任何你想应用的(一个或多个)TransitionOption?对象
  • 任何你想加载的缩略图?thumbnail()

?1.3.5 变换

在Glide中,Transformations 可以获取资源并修改它,然后返回被修改后的资源。通常变换操作是用来完成剪裁或对位图应用过滤器,但它也可以用于转换GIF动画,甚至自定义的资源类型。

Glide 提供了很多内置的变换,包括:

  • CenterCrop(裁剪):缩放图像让它填充到 ImageView 界限内并且裁剪额外的部分,ImageView 会被完全填充,但图像可能不会完整显示。
  • FitCenter(裁剪):即缩放图像让图像都测量出来等于或小于 ImageView 的边界范围,该图像将会完全显示。
  • CircleCrop(圆角):图片以圆形的形式显示。.png好像无效果

上面3个为内置对象

  • RoundedCorners(指定裁剪半径的圆角):
  • GranularRoundedCorners(指定4个角的裁剪半径):参数一次为:左上、右上、右下、左下
  • Rotate(旋转):指定旋转角度。正数为顺时针旋转

使用:requestOptions.transform() +?.apply(requestOptions) 或 直接.transform() 的形式

1.3.6?Generated API的使用

暂无

MainActivity.java代码:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView iv1 = findViewById(R.id.iv1);
        ImageView iv2 = findViewById(R.id.iv2);

        RequestOptions requestOptions = new RequestOptions()
                .placeholder(R.drawable.placeholder)
                .error(R.drawable.error)
                .fallback(R.drawable.fallback)
                .override(100,100); //override指定加载图片大小

        Glide.with(this)
                .load(R.drawable.ceshi)
                .apply(requestOptions)
                .into(iv1);

        Glide.with(this)
                .load(R.drawable.ceshi)
                .apply(requestOptions)
                .transform(new CircleCrop(),new Rotate(45))
                .into(iv2);
    }
}

运行效果图:

更多具体详见:Glide v4 : 目标 (muyangmin.github.io)

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-13 23:35:31  更:2022-04-14 00:16:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 21:50:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码