文档章节

Android 图片加载框架Glide的简单用法

d
 djonce
发布于 2017/03/20 16:44
字数 820
阅读 71
收藏 0

Glide的简单用法

1.在build.gradle中添加依赖:

compile 'com.github.bumptech.glide:glide:3.7.0'

因为需要support-v4库的支持,则还需添加依赖:

compile 'com.android.support:support-v4:25.3.0'

2.混淆的配置:

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

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

还需有添加相应的权限

<uses-permission android:name="android.permission.INTERNET" />

3.使用

基本使用:

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .into(imageView);

Glide.with()方法不光接受Context,还接受Activity 和 Fragment

.load()方法支持远程图片,本地图片文件,图片资源,多媒体数据库的uri

 

1)设置加载中和加载失败后的默认图片

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .placeholder(R.mipmap.ic_launcher)//加载中显示的图片
        .error(R.mipmap.ic_launcher)//加载失败时显示的图片
        .into(imageView);//显示到目标View中

2)设置淡入效果

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .placeholder(R.mipmap.ic_launcher)//加载中显示的图片
        .error(R.mipmap.ic_launcher)//加载失败时显示的图片
        .crossFade()//淡入显示
        .into(imageView);//显示到目标View中

crossFade还可以接收一些参数来设置淡入显示效果 ,有:

3)图片的缩放,centerCrop()和fitCenter()

了解过ImageView的ScaleType属性就知道,这2种裁剪方式在ImageView上也是有的,分别对应ImageView的ImageView.ScaleType.CENTER_CROP和mageView.ScaleType.FIT_CENTER的

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .placeholder(R.mipmap.ic_launcher)//加载中显示的图片
        .error(R.mipmap.ic_launcher)//加载失败时显示的图片
        .crossFade()//淡入显示
        .centerCrop()//中心裁剪,缩放填充至整个ImageView
        .into(imageView);//显示到目标View中

4)显示gif动画,asGif()判断是否是gif动画

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .asGif()
        .into(imageView);//显示到目标View中

5)缓存策略

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .skipMemoryCache(true)//跳过内存缓存
        .into(imageView);//显示到目标View中
Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .diskCacheStrategy(DiskCacheStrategy.NONE)//跳过磁盘缓存
        .into(imageView);//显示到目标View中

磁盘缓存,磁盘缓存通过diskCacheStrategy(DiskCacheStrategy)来设置,DiskCacheStrategy一共有4种模式:

  • DiskCacheStrategy.NONE:什么都不缓存
  • DiskCacheStrategy.SOURCE:仅缓存原图(全分辨率的图片)
  • DiskCacheStrategy.RESULT:仅缓存最终的图片,即修改了尺寸或者转换后的图片
  • DiskCacheStrategy.ALL:缓存所有版本的图片,默认模式

6)设置图片加载的优先级 

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .priority(Priority.HIGH)
        .into(imageView);//显示到目标View中

Priority 有4种级别:

  • Priority.LOW
  • Priority.NORMAL
  • Priority.HIGH
  • Priority.IMMEDIATE

7)设置加载缩略图

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .thumbnail(0.1f)//10%的原图大小 参数值必须在0~1之间
        .into(imageView);//显示到目标View中

8)对图片进行特殊处理,例如圆角图片,圆形图片,高斯模糊,旋转,灰度等等,在这里我使用的是glide-transformations

添加依赖:

compile 'jp.wasabeef:glide-transformations:2.0.2'

高斯模糊

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .bitmapTransform(new BlurTransformation(this))//高斯模糊
        .into(imageView);

灰度

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .bitmapTransform(new GrayscaleTransformation(this))//灰度
        .into(imageView);

圆形

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .bitmapTransform(new CropCircleTransformation(this))//圆形裁剪
        .into(imageView);

圆角

Glide
        .with(this)
        .load("http://www.qq745.com/uploads/allimg/141106/1-141106153Q5.png")
        .bitmapTransform(new RoundedCornersTransformation(this,15,0))//圆角 
        .into(imageView);

 

© 著作权归作者所有

d
粉丝 1
博文 22
码字总数 16957
作品 0
杭州
私信 提问
Android图片加载框架:Glide的常用用法|SquirrelNote

我的系列文章 Android图片加载框架:Glide的常用用法|SquirrelNote Android图片加载框架:Glide源码解析|SquirrelNote 前言 现在Android上的图片加载框架非常成熟,从最早的图片加载框架Uni...

跳动的松鼠
2017/11/18
0
0
Android图片缓存之初识Glide

前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架。技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自...

丁佳辉
2017/10/18
21
0
Android图片加载框架最全解析(一),Glide的基本用法

转载请注明出处:http://blog.csdn.net/guolinblog/article/details/53759439 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新。 现在A...

sinyu890807
2017/03/21
0
0
Design Patterns in Android:工厂方法模式

前言 今天给大家分享的是《设计模式Android篇:工厂方法模式》。 工厂方法是创建型模式的一种,可用来在适当的场合创建对象。今天将通过Android源码和Android开发案例跟大家讲解什么是工厂方...

MichaelX
2018/10/30
0
0
15 个 Android 通用流行框架大全

1. 缓存 DiskLruCache Java实现基于LRU的磁盘缓存 2.图片加载 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库 Picasso 一个强大的图片下载与缓存的库 Fresco 一个用于管...

oschina
2016/05/29
86.5K
32

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
今天
6
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
今天
9
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
今天
5
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
今天
7
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
7
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部