Glide4-入门教程-1-环境配置和基础使用

作者: android 发布时间: 2018-02-06 浏览: 6624 次 编辑

一、背景

        Glide是google推荐的图片加载框架,他不仅性能高,功能强大,而且简单易用。但是网上的资料大部分还是集中的Glide3的版本,就整理了一套Glide4的基本用法教程,仅供大家参考。 

备注:其他加载库的比较,暂时就不说了,大家可以网上搜索(glide,picasso,fresco,和老牌的Universal-image-loader)


目录:

1,Glide4-入门教程-1-环境配置和基础使用

2,Glide4-入门教程-2-占位符的使(placeholder, error, fallback)



二、环境配置 (使用Android Studio 3.0)

1,添加依赖 (app级别的build.gradle文件添加依赖

// 如果project 的build.gradle 中已经有这个配置,这里就不需要添加了
repositories {
  mavenCentral()
  google()
}

dependencies {
  implementation 'com.github.bumptech.glide:glide:4.6.1'
  annotationProcessor 'com.github.bumptech.glide:compiler:4.6.1'
}


注意:对Android SDK的要求如下:

Min Sdk Version - 使用 Glide 需要 min SDK 版本 API 14 (Ice Cream Sandwich) 或更高。

Compile Sdk Version - Glide 必须使用 API 26 (Oreo) 或更高版本的 SDK 来编译。

Support Library Version - Glide 使用的支持库版本为 27。

如果你需要使用不同的支持库版本,你需要在你的 build.gradle 文件里去从 Glide 的依赖中去除 "com.android.support"。例如,假如你想使用 v26 的支持库:

ependencies {
  implementation ("com.github.bumptech.glide:glide:4.6.0") {
    exclude group: "com.android.support"
  }
  implementation "com.android.support:support-fragment:26.1.0"
}

使用与 Glide 依赖的支持库不同的版本可能会导致一些运行时异常 ,例如:

java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)Landroid/graphics/Typeface; in class Landroid/support/v4/content/res/ResourcesCompat; or its super classes (declaration of 'android.support.v4.content.res.ResourcesCompat' 
at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)

2,AndroidManifest.xml 中添加权限设置(根据具体情况添加一下权限)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="your.package.name"
    <!-- 这两个权限是必须添加的 -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    
    <!-- 要从本地文件夹或 DCIM 或图库中加载图片,你将需要添加 READ_EXTERNAL_STORAGE 权限 -->
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    
    <!-- 如果要使用 ExternalPreferredCacheDiskCacheFactory 来将 Glide 的缓存存储到公有 SD 卡上,你还需要添加 WRITE_EXTERNAL_STORAGE 权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application>
      ...
    </application>
</manifest>

3, 如果在app目录下有 ProGuard 混淆代码文件,可以添加一下代码

-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public class * extends com.bumptech.glide.module.AppGlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
  **[] $VALUES;
  public *;
}

# for DexGuard only
-keepresourcexmlelements manifest/application/meta-data@value=GlideModule

好了,以上就是整个环境的配置过程


三、简单用法

1,加载一张网络图片,只需一行代码:

Glide.with(fragment)      // fragment 可以使 Fragment,Activity或者Context
    .load(myUrl)           // 图片的地址
    .into(imageView);      // 目标ImageView

2 ,取消加载也很简单:如下

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

使用起来是不是非常的简单


四、后续将讲解Glide的高级用法,和相关配置,敬请期待