导入

  1. dependencies {
    compile 'com.github.bumptech.glide:glide:4.0.0'
    compile 'com.android.support:support-v4:25.3.1'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0'
    }
  2. 2.下载jar  地址:glide.jar

基本使用

  1. 基本使用
Glide.with(this).load(imgUrl).into(img1);

  2. 设置预加载和加载失败的图片及缓存策略

  

RequestOptions options = new RequestOptions()
.centerCrop()
.placeholder(R.mipmap.ic_launcher)//预加载图片
.error(R.mipmap.ic_launcher)//加载失败显示图片
.priority(Priority.HIGH)//优先级
.diskCacheStrategy(DiskCacheStrategy.NONE);//缓存策略
Glide.with(this).load(imgUrl).apply(options).into(img1);

显示圆形图片

  •   定义转化圆形的类 继承自BitmapTransforation

  

public class GlideCircleTransform extends BitmapTransformation {
public GlideCircleTransform(){
super();
} @Override
protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {
return circleCrop(pool,toTransform);
} @Override
public void updateDiskCacheKey(MessageDigest messageDigest) { }
private static Bitmap circleCrop(BitmapPool pool,Bitmap source){
if(source==null) return null;
int size=Math.min(source.getWidth(),source.getHeight());
int x=(source.getWidth()-size)/2;
int y=(source.getHeight()-size)/2;
Bitmap squared= Bitmap.createBitmap(source,x,y,size,size);
Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
if(result==null){
result=Bitmap.createBitmap(size,size,Bitmap.Config.ARGB_8888);
}
Canvas canvas=new Canvas(result);
Paint paint=new Paint();
paint.setShader(new BitmapShader(squared,BitmapShader.TileMode.CLAMP,BitmapShader.TileMode.CLAMP));
paint.setAntiAlias(true);
float r=size/2f;
canvas.drawCircle(r,r,r,paint);
return result;
}
}
  •  在RequestOptions中配置该类

  

RequestOptions options2 = new RequestOptions()
.centerCrop()
.placeholder(R.mipmap.ic_launcher)//预加载图片
.error(R.mipmap.ic_launcher)//加载失败显示图片
.priority(Priority.HIGH)//优先级
.diskCacheStrategy(DiskCacheStrategy.NONE)//缓存策略
.transform(new GlideCircleTransform());//转化为圆形
Glide.with(this).load(imgUrl).apply(options2).into(img1);

显示圆角图片

  • 定义转化圆形的类 继承自BitmapTransforation

  

public class GlideRoundTransform extends BitmapTransformation {

    private static float radius=0f;
public GlideRoundTransform(){
this(4);
}
public GlideRoundTransform(int dp){
super();
this.radius= Resources.getSystem().getDisplayMetrics().density*dp;
} @Override
protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {
return roundCrop(pool,toTransform);
} @Override
public void updateDiskCacheKey(MessageDigest messageDigest) { } private static Bitmap roundCrop(BitmapPool pool,Bitmap source){
if(source==null){
return null;
}
Bitmap result=pool.get(source.getWidth(),source.getHeight(), Bitmap.Config.ARGB_8888);
if(result==null){
result=Bitmap.createBitmap(source.getWidth(),source.getHeight(), Bitmap.Config.ARGB_8888);
}
Canvas canvas=new Canvas(result);
Paint paint=new Paint();
paint.setShader(new BitmapShader(source,BitmapShader.TileMode.CLAMP,BitmapShader.TileMode.CLAMP));
paint.setAntiAlias(true);
RectF rectF=new RectF(0f,0f,source.getWidth(),source.getHeight());
canvas.drawRoundRect(rectF,radius,radius,paint); return result;
}
}
  • 在RequestOptions中配置该类
RequestOptions options1 = new RequestOptions()
.centerCrop()
.placeholder(R.mipmap.ic_launcher)//预加载图片
.error(R.mipmap.ic_launcher)//加载失败显示图片
.priority(Priority.HIGH)//优先级
.diskCacheStrategy(DiskCacheStrategy.NONE)//缓存策略
.transform(new GlideRoundTransform(20));//转化为圆角
Glide.with(this).load(imgUrl).apply(options1).into(img1);

Glide4.0使用的更多相关文章

  1. Android 图片加载框架Glide4.0源码完全解析(一)

    写在之前 上一篇博文写的是Picasso基本使用和源码完全解析,Picasso的源码阅读起来还是很顺畅的,然后就想到Glide框架,网上大家也都推荐使用这个框架用来加载图片,正好我目前的写作目标也是分 ...

  2. Android 图片加载框架Glide4.0源码完全解析(二)

    写在之前 上一篇博文写的是Android 图片加载框架Glide4.0源码完全解析(一),主要分析了Glide4.0源码中的with方法和load方法,原本打算是一起发布的,但是由于into方法复杂性 ...

  3. Glide4.0 centerCrop属性和圆角 冲突

    首先致谢:https://blog.csdn.net/flyinbed_/article/details/75506062 咱们不是代码的生产者,只是代码的搬运工. 最近有个工作中有个需求就是展示的图 ...

  4. 集成Glide4.3.1出错!AbstractMethodError: abstract method "void com.bumptech.glide.module

    项目中原本是用的Glide3.7.0,一切功能正常,但是集成了网易云信的UIKIT后,就出问题了,发现是Glide4.0的问题. Glide4.0,始终会报这么一个错,就算是最简单的加载也仍然报错. ...

  5. Glide3升级到Glide4碰到的问题汇总以及部分代码修改

    版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/188 Glide.3x的版本是3.7.0,Glide4.x ...

  6. 2017上半年技术文章集合【Android】—184篇文章分类汇总

    地址: http://blog.csdn.net/androidstarjack/article/details/77923753 声明 | 本文是于亚豪 原创 终端研发部 前言: 2017年已经过大 ...

  7. Glide v4版本用法探究.md

    一基本介绍 本博客是基于Glide4.0+进行探究和学习 使用配置 用法比对 二使用配置 1. Android studio 使用项目gradle配置 dependencies { //glide c ...

  8. Android开发——获得Json数据,并显示图片

    流程介绍 使用okhttp网络框架进行get请求,获得json数据 //一个封装好的工具类的静态方法 public static void sendOkHttpRequest(final String ...

  9. Glide优化

    几乎所有的 OOM 错误都是因为宿主应用出了问题,而不是 Glide 本身. 应用里两种常见的 OOM 错误分别是: 过大的内存分配 (Excessively large allocations) 内 ...

随机推荐

  1. shell查看执行过程及时间变量

    sh -xv test.sh    #加参数xv查看shell执行过程. Shell 调用系统时间变量 获取今天时期:`date +%Y%m%d` 或 `date +%F` 或date +%Y-%m- ...

  2. mongodb配置和基本操作

    MongoDB3.0新特性WiredTigerMMAPv1可插拔引擎API基于web的可视化管理工具 查看版本号mongod --version启动数据库 mongod --dbpath $dbpat ...

  3. 【转】Jmeter Http请求界面解释

    一个HTTP请求有着许多的配置参数,下面将详细介绍: 名称:本属性用于标识一个取样器,建议使用一个有意义的名称. 注释:对于测试没有任何作用,仅用户记录用户可读的注释信息. 服务器名称或IP :HTT ...

  4. java代码求奖金。要求从键盘输入利润

    总结:看似文字描述很多, package com.ai; import java.util.Scanner; import com.b.Scaner; //v企业发放的奖金根据利润提成.利润(I)低于 ...

  5. 权益保护-知识产权:知识产权(IP)百科

    ylbtech-权益保护-知识产权:知识产权(IP)百科 知识产权,也称其为“知识所属权”,指“权利人对其智力劳动所创作的成果和经营活动中的标记.信誉所依法享有的专有权利”,一般只在有限时间内有效.各 ...

  6. 1142 Maximal Clique

    题意:给出一个图,定义这样一个结点子集subset,若subset中的任意两结点不都相邻,则称之为Not a Clique:若subset中的任意两结点都相邻,则称之为Clique:若subset中的 ...

  7. HTTP 无法注册 URL http://+:8000/。进程不具有此命名空间的访问权限

    转到bin/debug/目录下, 右键管理员启动

  8. Rest之路 - Rest架构中的重要概念(二)

    状态无关性 Rest 架构中不维持client,resource and request 的状态,我们通常称 Rest 服务是状态无关的.基于此的优势是为设计Rest架构提供了简便:每一个请求可以被完 ...

  9. js操作window

    js操作window 常用属性 window.closed // window是否关闭 window.length // iframe个数 window.name // 获取和设置window的名字 ...

  10. Three.js黑暗中的萤火虫

    效果图 demo import './index.css'; // stats var stats; (function(){ stats = new Stats(); document.body.a ...