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的使用介绍. 参考博 ...
随机推荐
- PY个树状数组
树状数组看起来比较简单,于是就挑它下手了... 于是生活终于也对咱下手了... 要讲的就两个东西,一个是开数组,全局变量写最前面,数组是这么开的: f=[0 for i in range(500005 ...
- Views的补充
views的补充 请求头一般与请求内容用/r/n/r/n隔开 请求头包含的内容 request.Meta(...) 一般在下面几种方法里面取不到的东西需要去原生的头里面去取,比如用户的终端类型 req ...
- php设置错误级别
ini_set('display_errors', 1); error_reporting(E_ALL);
- 可视化缺失值的办法——R语言
在数据分析中,对缺失值的处理是很关键一步,一般用summary()函数 a<-c(,,,NA) B<-c("a","b","c" ...
- lilo.conf - lilo 配置文件
描述 默认情况下,本文件 ( /etc/lilo.conf ) 由引导管理程序 lilo 读取 (参考 lilo(8)). 它看起来可能象这样: boot = /dev/hda delay = 40 ...
- js emoji 过滤
function filteremoji(emojireg){ var ranges = [ '\ud83c[\udf00-\udfff]', '\ud83d[\udc00-\ude4f]', '\u ...
- Django中间件拦截未登录url
1.利用装饰器在视图中拦截未登录的url @login_required(login_url='/user/login/') def homepage(request): pass 这种方法适合于程序 ...
- MFC学习笔记1---准备工作
什么是MFC MFC,全称Microsoft Foundation Classes,微软基础类库,顾名思义,是微软的攻城狮们将一些常用的基础的Windows API 函数用C++的形式封装成类,简化程 ...
- Python核心技术与实战——八|匿名函数
今天我们来学习一下匿名函数.在学习了上一节的自定义函数后,是时候了解一下匿名函数了.他们往往非常简短,就一行,而且有个关键字:lambda.这就是弥明函数. 一.匿名函数基础 匿名函数的基本格式是这样 ...
- @transactional注解在什么情况下会失效,为什么?
一,特性: 1,一般在service里加@Transactional注解,不建议在接口上添加,加了此注解后此类会纳入spring事务管理中,每个业务方法执行时,都会开启一个事务,不过都是按照相同的管理 ...