Glide使用原理

基础概念:

  • Model:图片地址(网络url,本地文件,ResId等)
  • Data:InputStream 根据图片地址获取的原始数据。
  • Resource:原始数据解码后获得的格式,如Bitmap、Drawable 等;
  • TransformResource:转换后的数据,转换,剪切,圆角等;
  • TranscodedResource:转码后的数据,例如GIF;
  • Target:显示目标控件,如ImageView。
Glide工作流程.png

简单使用:三步走with load into

  • with(context) 可以使用Activity,Fragment,ApplicationContext等,建议使用Activity或者Fragment,方便与页面生命周期,当Activity(或者Fragment) Destroy时,图片也停止加载,如果是ApplicationContext,则图片加载会与APP生命周期同步;
  • placeHolder( )和error( ) 应该使用ResId或者本地文件。
  • override(width , height)加载时,改变图片大小,节省内存。
  • skipMemoryCache(true)跳过内存缓存,但是并不会影响缓存至内存。只是三级缓存时跳过内存,直接从本地或者网络请求。默认就是false。针对url相同的图片
  • load 指定待加载的图片资源。Glide支持加载多种图片资源:网络图片、本地图片、应用资源、二进制流、Uri对象等。因此load()方法也有很多个方法重载,除了字符串网址之外,还可以以下使用方是式:
// 加载本地图片
File file = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(this).load(file).into(imageView);

// 加载应用资源
int resource = R.drawable.image;
Glide.with(this).load(resource).into(imageView);

// 加载二进制流
byte[] image = getImageBytes();
Glide.with(this).load(image).into(imageView);

// 加载Uri对象
Uri imageUri = getImageUri();
Glide.with(this).load(imageUri).into(imageView);

你可能感兴趣的:(Glide使用原理)