Glide4.0使用
导入
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.下载jar 地址:glide.jar
基本使用
- 基本使用
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使用的更多相关文章
- Android 图片加载框架Glide4.0源码完全解析(一)
写在之前 上一篇博文写的是Picasso基本使用和源码完全解析,Picasso的源码阅读起来还是很顺畅的,然后就想到Glide框架,网上大家也都推荐使用这个框架用来加载图片,正好我目前的写作目标也是分 ...
- Android 图片加载框架Glide4.0源码完全解析(二)
写在之前 上一篇博文写的是Android 图片加载框架Glide4.0源码完全解析(一),主要分析了Glide4.0源码中的with方法和load方法,原本打算是一起发布的,但是由于into方法复杂性 ...
- Glide4.0 centerCrop属性和圆角 冲突
首先致谢:https://blog.csdn.net/flyinbed_/article/details/75506062 咱们不是代码的生产者,只是代码的搬运工. 最近有个工作中有个需求就是展示的图 ...
- 集成Glide4.3.1出错!AbstractMethodError: abstract method "void com.bumptech.glide.module
项目中原本是用的Glide3.7.0,一切功能正常,但是集成了网易云信的UIKIT后,就出问题了,发现是Glide4.0的问题. Glide4.0,始终会报这么一个错,就算是最简单的加载也仍然报错. ...
- Glide3升级到Glide4碰到的问题汇总以及部分代码修改
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/188 Glide.3x的版本是3.7.0,Glide4.x ...
- 2017上半年技术文章集合【Android】—184篇文章分类汇总
地址: http://blog.csdn.net/androidstarjack/article/details/77923753 声明 | 本文是于亚豪 原创 终端研发部 前言: 2017年已经过大 ...
- Glide v4版本用法探究.md
一基本介绍 本博客是基于Glide4.0+进行探究和学习 使用配置 用法比对 二使用配置 1. Android studio 使用项目gradle配置 dependencies { //glide c ...
- Android开发——获得Json数据,并显示图片
流程介绍 使用okhttp网络框架进行get请求,获得json数据 //一个封装好的工具类的静态方法 public static void sendOkHttpRequest(final String ...
- Glide优化
几乎所有的 OOM 错误都是因为宿主应用出了问题,而不是 Glide 本身. 应用里两种常见的 OOM 错误分别是: 过大的内存分配 (Excessively large allocations) 内 ...
随机推荐
- 【转】关于一个Jmeter interface testing的实例
目标:测试某个保险系统的费率接口 准备:a 请求方式:Http b 接口地址://10.1.1.223:9090/rulesEngine/executeRateRule.do Jmeter 设置: a ...
- android滚条简单说明
先看一下我自己写的布局,电脑屏幕太小,只截取到了一个radiobutton. 先画一个horizontalScrollView,因为我要做水平滚动,然后我需要水平布局,就添加了一个LinearLayo ...
- USB设备驱动总结
现象:把USB设备接到PC (韦老师总结) 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有" ...
- BugkuCTF 逆向
Easy_vb 下载文件,打开 用 IDA 或 OD 打开 在中间部分发现 flag 把 MCTF 改成 flag,就是正确的 flag 了 Easy_Re 下载附件,打开
- PHP函数(二)-不定参数的传递
如果要传递不定数量的参数,需要使用func_get_args()函数来传递 func_num_args()函数用来返回参数的总数 <?php function more_args(){ $arg ...
- 爬取豆瓣电影Top250信息
# -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import requests from pyquery import PyQ ...
- 内网渗透神器xerosploit
项目地址:https://github.com/LionSec/xerosploit 安装完成后直接在终端输入xerosploit打开 显示了本机的内网ip,mac地址,网关,网卡,输入help查看帮 ...
- dubbo学习 三 dubbox概述
当当网根据自身的需求,对dubbo进行了扩展就叫成了dubbox.具体的使用方法可以参照官网各种例子:http://dangdangdotcom.github.io/dubbox/ 支持rest风 ...
- 手机发烫是为何—— App 电量测试定位方法
为什么要做电量测试 随着移动互联网的快速发展,手机的实用性.娱乐性越来越强.日常使用中发现,安装了应用后,即使不怎么使用,电量也会消耗很快.但如果恢复出场设置充满电后,手机可以待机很长时间.真相只有一 ...
- 当我们谈 SQL 优化时在谈些什么?
作者 |孙银行编辑 | 顾乡 背景 Mysql数据库作为数据持久化的存储系统,在实际业务中应用广泛.在应用也经常会因为SQL遇到各种各样的瓶颈.最常用的Mysql引擎是innodb,索引类型是B-Tr ...