当前位置:   article > 正文

Android中Glide的使用_android glide

android glide

1.1 Glide的概述

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

1.2 Glide的引入

1.2.1 Glide的配置

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

  1. dependencies {
  2. implementation 'com.github.bumptech.glide:glide:4.11.0'
  3. annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
  4. }

其中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代码:

  1. public class MainActivity extends AppCompatActivity {
  2. @Override
  3. protected void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.activity_main);
  6. ImageView iv1 = findViewById(R.id.iv1);
  7. ImageView iv2 = findViewById(R.id.iv2);
  8. RequestOptions requestOptions = new RequestOptions()
  9. .placeholder(R.drawable.placeholder)
  10. .error(R.drawable.error)
  11. .fallback(R.drawable.fallback)
  12. .override(100,100); //override指定加载图片大小
  13. Glide.with(this)
  14. .load(R.drawable.ceshi)
  15. .apply(requestOptions)
  16. .into(iv1);
  17. Glide.with(this)
  18. .load(R.drawable.ceshi)
  19. .apply(requestOptions)
  20. .transform(new CircleCrop(),new Rotate(45))
  21. .into(iv2);
  22. }
  23. }

运行效果图:

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/482758
推荐阅读
相关标签
  

闽ICP备14008679号