Glide 图片框架
学习参考:https://blog.csdn.net/guolin_blog/article/details/53759439
一 基础使用
Picasso比Glide更加简洁和轻量,Glide比Picasso功能更为丰富。
没有最好的框架,只有最适合自己的框架。选择了Glide来进行学习,并且这也是Google官方推荐的图片加载框架。
Glide.with(mContext).load(localImagePath)
.crossFade()//淡入淡出动画
//设置缩略图 显示原图的10%
//当全分辨率的目标图片在后台加载完全后,Glide会自动切换显示全像素的图片。
//设置缩略图 也可以是其他图片
.thumbnail(0.1f)
.centerCrop()//缩放 填充iamgeview宽高,图片可能不完全显示
.placeholder(R.drawable.ic_picture_loading)//占位图
.error(R.drawable.mis_default_error)//error图
//内存缓存策略 true跳过内存缓存; false默认不跳过内存缓存:注意,跳过内存缓存,还是会缓存到硬盘
.skipMemoryCache(false)
.diskCacheStrategy(DiskCacheStrategy.NONE)//磁盘缓存策略 不缓存到SD卡
.dontAnimate()//取消淡入淡出动画
.listener(reqlistener)
.into(item_iv);
二 Glide的特性:
public class CornersTransform extends BitmapTransformation { private float radius; public CornersTransform(Context context) {
super(context);
radius = 10;
} public CornersTransform(Context context, float radius) {
super(context);
this.radius = radius;
} @Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
return cornersCrop(pool, toTransform);
} private Bitmap cornersCrop(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;
} @Override
public String getId() {
return getClass().getName();
} } Glide.with(this).load(list.get(0).getOriginalPath()).transform(new CornersTransform(this)).into(iv);
三 项目中应用
Glide.with(this).load(list.get(0).getOriginalPath())
.fitCenter()
.placeholder(R.drawable.ic_picture_loading)
.error(R.drawable.mis_default_error)
.transform(new CornersTransform(this))//圆角
.into(iv);
Glide.with(mContext).load(localImagePath)
.crossFade()
.oversize(300,300) .centerCrop()
.placeholder(R.drawable.ic_picture_loading)
.error(R.drawable.mis_default_error)
.skipMemoryCache(false) //内存缓存策略 true关闭内存缓存; false默认不跳过内存缓存
.into(item_iv);
Glide 图片框架的更多相关文章
- Glide图片框架
//加载圆形图片Glide.with(this).load(WSCAppStatic.WEB_KEFU_PHOTO_URL+ "?usercode=8120000315") .as ...
- android Glide图片加载框架的初探
一.Glide图片加载框架的简介 谷歌2014年开发者论坛会上介绍的图片加载框架,它让我们在处理不管是网路下载的图片还是本地的图片,减轻了很多工作量, 二.开发步骤: 1.添加链接库 compile ...
- android glide图片加载框架
项目地址: https://github.com/bumptech/glide Glide作为安卓开发常用的图片加载库,有许多实用而且强大的功能,那么,今天就来总结一番,这次把比较常见的都写出来,但并 ...
- Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能
我们的Glide系列文章终于要进入收尾篇了.从我开始写这个系列的第一篇文章时,我就知道这会是一个很长的系列,只是没有想到竟然会写这么久. 在前面的六篇文章中,我们对Glide的方方面面都进行了学习,包 ...
- Glide Picasso Fresco UIL 图片框架 缓存 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Glide Picasso Fresco UIL 图片框架 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 深入探索Glide图片加载框架:做了哪些优化?如何管理生命周期?怎么做大图加载?
前言 Glide可以说是最常用的图片加载框架了,Glide链式调用使用方便,性能上也可以满足大多数场景的使用,Glide源码与原理也是面试中的常客. 但是Glide的源码内容比较多,想要学习它的源码往 ...
- Fresco图片框架内部实现原理探索
流行的网络框架 目前流行的网络图片框架: Picasso.Universal Image Loader.Volley的(ImageLoader.NetworkImageView).Glide和Fres ...
- Diycode开源项目 Glide图片加载分析
1.使用Glide前的准备 1.1.首先要build.gradle中添加 github原地址点击我. 参考博客:Glide-开始! 参考博客:android图片加载库Glide的使用介绍. 参考博 ...
随机推荐
- CPU与GPU,我们应该使用哪个?
CPU与GPU,我们应该使用哪个? CPU与GPU CPU即中央处理器,GPU即图形处理器. 两者的相同之处:两者都有总线和外界联系,有自己的缓存体系,以及数字和逻辑运算单元 两者的区别之处:在于存在 ...
- Use of Function Arctan
Use of Function Arctan Time Limit:10000MS Memory Limit:0KB 64bit IO Format:%lld & %llu S ...
- [USACO12DEC]第一!First!(字典树,拓扑排序)
[USACO12DEC]第一!First! 题目描述 Bessie has been playing with strings again. She found that by changing th ...
- Comet OJ - 模拟赛 #2 Day1 比赛总结
比赛情况 40 + 60 + 0 = 100pts 哎,T1做错了,没有对拍.如果发现错误 \(=>\) 改正 \(=>\) 40->100pts,160pts \(=>\) ...
- CF1103C Johnny Solving (Codeforces Round #534 (Div. 1)) 思维+构造
题目传送门 https://codeforces.com/contest/1103/problem/C 题解 这个题还算一个有难度的不错的题目吧. 题目给出了两种回答方式: 找出一条长度 \(\geq ...
- bzoj4817 & loj2001 [Sdoi2017]树点涂色 LCT + 线段树
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4817 https://loj.ac/problem/2001 题解 可以发现这个题就是 bzo ...
- 前端之JavaScript:JS简单介绍
JavaScript(JS)之简单介绍 一.JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名Scr ...
- [USACO2009 OPEN] 滑雪课 Ski Lessons
洛谷P2948 看到题目就觉得这是动规但一直没想到如何状态转移……看了别人的题解之后才有一些想法 f[i][j]:前i单位时间能力值为j可以滑的最多次数 lessons[i][j]:结束时间为i,获得 ...
- note 2019.12.16
1.无序 HTML 列表: <ul> <li>Coffee</li> <li>Tea</li> <li>Milk</li& ...
- 51nod1820 长城之旅
题目描述 BB 痛失一血(打了场Comet OJ回来就没了) 不过后来又刷了一道水题 题解 LCM+取模=结论题 结论1 \(gcd(k^{2^i}+1,k^{2^j}+1)=1 (i\neq j 且 ...