Glide简单使用

1.简介

Glide is a fast and efficient open source media management and image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface.
Glide是一款快速高效的Android开源媒体管理和图像加载框架,它将媒体解码,内存和磁盘缓存以及资源池包装成简单易用的界面。
中文参考文档:https://muyangmin.github.io/glide-docs-cn/

2.依赖

权限声明

 
 
 
 
 implementation 'com.github.bumptech.glide:glide:4.8.0'
 annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

3.简单使用

多数情况下,使用Glide加载图片非常简单,一行代码足矣:

Glide.with(fragment)
    .load(myUrl)
    .into(imageView);
  • 在 Application 模块中的使用(支持更多功能)
    在 Application 模块中,可创建一个添加有 @GlideModule 注解,继承自 AppGlideModule 的类。此类可生成出一个流式 API,内联了更多选项。
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;

@GlideModule
public class MyAppGlideModule extends AppGlideModule {
}

生成的 API 默认名为 GlideApp ,与 AppGlideModule 的子类包名相同。在 Application 模块中将 Glide.with() 替换为 GlideApp.with()

 GlideApp.with(this).load("http://goo.gl/gEgYUd").into(imageView);

  GlideApp
    .with(myFragment)
    .load(url)
    .centerCrop()
    .placeholder(R.drawable.loading_spinner)
    .into(myImageView);

4.缓存策略

  • DiskCacheStrategy.NONE 不缓存文件
  • DiskCacheStrategy.SOURCE 只缓存原图
  • DiskCacheStrategy.RESULT 只缓存最终加载的图(默认的缓存策略)
  • DiskCacheStrategy.ALL 同时缓存原图和结果图
GlideApp.with(fragment)
  .load(url)
  .diskCacheStrategy(DiskCacheStrategy.ALL)
  .into(imageView);

5.缓存

GlideApp.with(fragment)
  .load(url)
  .onlyRetrieveFromCache(true) //仅从缓存加载图片
  .skipMemoryCache(true) //如果你想确保一个特定的请求跳过磁盘和/或内存缓存
  .into(imageView);

6.圆形图片

  RequestOptions mRequestOptions = RequestOptions.circleCropTransform()
                .skipMemoryCache(true);//不做内存缓存

        GlideApp.with(this)
                .load(imgUrl)
                .centerCrop()
                .apply(mRequestOptions)
                .placeholder(R.drawable.ic_launcher_background)//加载中显示的图片
                .error(R.drawable.ic_launcher_foreground)// 错误后显示的图片
                .into(mImg);

7.圆角图片

//设置图片圆角角度
RoundedCorners roundedCorners= new RoundedCorners(6);
//通过RequestOptions扩展功能,override:采样率,因为ImageView就这么大,可以压缩图片,降低内存消耗
RequestOptions options=RequestOptions.bitmapTransform(roundedCorners).override(300, 300);
 
GlideApp.with(context)
.load(files.getFilePath())
.apply(options)
.into(img);

Glide 4.0以上支持圆角和圆形图片,3.0只能通过外库支持。

你可能感兴趣的:(Glide简单使用)