欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android Glide V4 图片加载

程序员文章站 2022-05-03 12:54:15
...

说明:

 之前一直使用的是Glide V3版本,实用比较简单,但是Glide更新了,所以项目也随之升级为Glide V4版本。

引入包:

 根目录build.gradle的allprojects中加入:

allprojects {
    repositories {
        //support annotations
        maven {
            url "https://maven.google.com"
        }
        maven {
            url "https://dl.google.com/dl/android/maven2/"
        }
    }
}
 *记得一定是在allprojects 否则项目不会编译成功的。

项目build.gradle中引人jar包:

dependencies {
    compile 'com.github.bumptech.glide:glide:4.3.1'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.3.1'
}

重写类:

如果仅仅操作了上面的代码是不会运行成功的,需要重写一个类,这样V4的GlideApp才能想V3版本那样Glide一样的格式使用。

 

/**
 * GlideApp 必须实现
 * Created by zst on 2018/1/23.
 */

@GlideModule
public class MyAppGlideModule extends AppGlideModule {
    @Override
    public boolean isManifestParsingEnabled() {
        return false;
    }
}

 记住一定要有注解@GlideModule

用法:

 1、图片圆形处理和占位图

GlideApp.with(MainActivity.this)
                    .load(imageUrl)
                    .apply(RequestOptions.circleCropTransform())//图片是圆形的
                    .placeholder(R.drawable.ic_user_default)//占位图
                    .into(iv_account);

2、取消加载图片

GlideApp.with(fragment).clear(imageView);

3、加载失败后显示的图片(Error)

GlideApp.with(fragment)
      .load(url)
      .error(R.drawable.error)
      .into(view);

4、加载图片带淡入淡出的动画效果

GlideApp.with(this)
       .load(url)
       .transition(withCrossFade())
       .into(ivTest);

5、在磁盘缓存(默认Glide是自带缓存的,自行管理缓存)

    GlideApp.with(fragment)
      .load(url)
      .diskCacheStrategy(DiskCacheStrategy.ALL)
      .into(imageView);

6、仅从缓存加载图片

GlideApp.with(fragment)
      .load(url)
      .onlyRetrieveFromCache(true)
      .into(imageView);

7、跳过内存缓存

    GlideApp.with(fragment)
      .load(url)
      .skipMemoryCache(true)
      .into(view);

8、跳过磁盘缓存

    GlideApp.with(fragment)
      .load(url)
      .diskCacheStrategy(DiskCacheStrategy.NONE)
      .into(view);

9、跳过所有的缓存

    GlideApp.with(fragment)
      .load(url)
      .diskCacheStrategy(DiskCacheStrategy.NONE)
      .skipMemoryCache(true)
      .into(view);

10、清理磁盘的缓存

GlideApp.get(applicationContext).clearDiskCache();
 11、Android Glide V4 高斯模糊
 地址:http://blog.csdn.net/u012246458/article/details/79161483


开发中遇到的报错:

http://blog.csdn.net/u012246458/article/details/51891265

http://blog.csdn.net/u012246458/article/details/79161416