赞
踩
Glide,就像 Picasso,可以从多个源去加载和显示图片,同时也兼顾缓存和在做图片处理的时候维持一个低内存消耗。它已经在 Google 官方 APP (如 Google 2015开发者大会的应用程序)中使用了,就和 Picasso 一样受欢迎。
在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 调用的选项在各处行为一致。
Glide建造者要求最少有三个参数:
- with(Fragment fragment/Context context),很多AndroidAPI调用,Context是必须的。
- load(String imageUrl),这个ImageUrl就是我们要传的图片地址。
- into(ImageView imageView),这个就是我们想把URL 加载到哪个ImageView中。
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的使用
Glide允许用户指定三种不同类型的占位符,分别在三种不同场景使用:
null
时展示。可用的选项包括(但不限于):
Placeholders
)Transformations
)Caching Strategies
)Bitmap
的解码配置等。TransitionOptions用于决定你的加载完成时会发生什么。TransitionOptions可以应用以下变换:
RequestBuilder 是Glide中请求的骨架,负责携带请求的url和你的设置项来开始一个新的加载过程。使用 RequestBuilder 可以指定:
RequestOption
对象TransitionOption
对象在Glide中,Transformations 可以获取资源并修改它,然后返回被修改后的资源。通常变换操作是用来完成剪裁或对位图应用过滤器,但它也可以用于转换GIF动画,甚至自定义的资源类型。
Glide 提供了很多内置的变换,包括:
上面3个为内置对象
使用:requestOptions.transform() + .apply(requestOptions) 或 直接.transform() 的形式
暂无
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);
- }
- }
运行效果图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。