Android之Glide使用详解--集成、配置、使用、特性

本文详细介绍了Android图像加载库Glide,强调其功能强大、性能优秀,支持Gif动态图加载。文章涵盖了Glide的集成、配置、使用及特性,包括与Volley和OkHttp的集成、图片大小调整、占位图和错误图设置、缓存策略等。同时,文章探讨了Glide在不同场景下的最佳实践和生命周期管理,以及与自定义ImageView的兼容问题和解决方案。
摘要由CSDN通过智能技术生成

一、Glide介绍
在Android开发中,图片加载是必不可少的,Glide作为谷歌推荐的图片库,现在越来越火。
Glide 是一个 Android 上的图片加载和缓存库,它不仅能实现平滑的图片列表滚动效果,还支持远程图片的获取、大小调整和展示,并且可以加载Gif动态图,可谓功能强大。在我看来,可能现在大部分小伙伴还是比较喜欢Image Loader,毕竟用了很多年,也习惯了,但是我们思维不能被它束缚,而且官方已经声明不再维护该库,难道已经完美了吗?Glide毕竟是谷歌推荐,已经开源,说明至少是稳定的,而且比较轻量,不管是功能还是性能上都优于其他的(个人意见)。

二、Glide集成
1.项目中集成Glide
在gradle中添加Glide库:

dependencies {
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.android.support:appcompat-v7:23.1.1'
}

Glide的集成离不开v4包,所以必须添加support包。
2.Glide集成其他库
Glide包含一些小的、可选的集成库,目前Glide集成库当中包含了访问网络操作的Volley和OkHttp:
(1)Volley集成
第一步、添加依赖

dependencies {
    compile 'com.github.bumptech.glide:volley-integration:1.2.2'
    compile 'com.mcxiaoke.volley:library:1.0.5'
}

第二步、创建Volley集成库的GlideModule

<meta-data
 android:name="com.bumptech.glide.integration.volley.VolleyGlideModule"
    android:value="GlideModule" />

然后改变混淆文件:

-keep class com.bumptech.glide.integration.volley.VolleyGlideModule
#or
-keep public class * implements com.bumptech.glide.module.GlideModule

(2)OkHttp集成
第一步、添加依赖

dependencies {
    compile 'com.github.bumptech.glide:okhttp-integration:1.2.2'
    compile 'com.squareup.okhttp:okhttp:2.0.0'
}

第二步、创建Volley集成库的GlideModule

<meta-data
    android:name="com.bumptech.glide.integration.okhttp.OkHttpGlideModule"
    android:value="GlideModule" />

然后改变混淆文件:

-keep class com.bumptech.glide.integration.okhttp.OkHttpGlideModule
#or
-keep public class * implements com.bumptech.glide.module.GlideModule

(3)集成转换器(此处只介绍集成库,使用后面再讲)
第一步、gradle添加依赖

repositories {
    jcenter()
    mavenCentral()  // GPUImage for Android
}

dependencies {
    compile 'jp.wasabeef:glide-transformations:2.0.1'
    // If you want to use the GPU Filters
    compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.3.0'
}

通过这个转换器库,可以实现各式各样的图片,非常强大。

三、Glide配置
Glide如同ImageLoader一样,也是可以配置一些属性的,Glide可以在GlideModel中统一配置其属性。
1.第一步:

public class GlideModelConfig implements GlideModule {
   

    int diskSize = 1024 * 1024 * 100;
    int memorySize = (int) (Runtime.getRuntime().maxMemory()) / 8;  // 取1/8最大内存作为最大缓存

    @Override
    public void applyOptions(Context context, GlideBuilder builder) {
        // 定义缓存大小和位置
        builder.setDiskCache(new InternalCacheDiskCacheFactory(context, diskSize));  //内存中<
  • 39
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值