Glide-图片的压缩
来源:互联网 发布:任天堂vb用电池的吗 编辑:程序博客网 时间:2024/05/22 06:48
前言:
这一节里面我们将介绍Glide如何对图片进行压缩,这一点在加载图片较多或者加载的图片像素很高的程序里面至关重要
Glide 系列目录
- 1.Glide-入门教程
- 2.Glide-占位图以及加载动画
- 3.Glide-加载本地图片
- 4.Glide-加载Gif
- 5.Glide-绑定生命周期
- 6.Glide-内存缓存与磁盘缓存
- 7.Glide-通过Modules定制Glide
- 8.Glide-自定义缓存
- 9.Glide-图片的压缩
- 10.Glide-图片预处理(圆角,高斯模糊等)
- 11.Glide-图片的剪裁(ScaleType)
- 12.Glide-源码详解
1.Android图片显示相关知识
这里会讲一下图片显示相关的基础知识,如果不关心的可以直接跳到第二点,不过建议是最好看一下
1.1图片质量分类
安卓图片显示的质量配置主要分为四种:
- ARGB_8888 :32位图,带透明度,每个像素占4个字节
- ARGB_4444 :16位图,带透明度,每个像素占2个字节
- RGB_565 :16位图,不带透明度,每个像素占2个字节
- ALPHA_8 :32位图,只有透明度,不带颜色,每个像素占4个字节
(A代表透明度,RGB代表红绿蓝:即颜色)
1.2图片默认质量
Picasso的默认质量是 ARGB_8888
Glide的默认质量则为 RGB_565
1.3占用内存
加载一张4000 * 2000(一般手机拍摄的都超过这个像素)的图片
Picasso需要占用的内存为: 32MB
4000 * 2000 * 4 / 1024 / 1024 = 30 (MB)
Glide需要占用的内存为: 16MB
4000 * 2000 * 2 / 1024 / 1024 = 15 (MB)
也就是说只要同时加载几张图片,你的应用就会OOM(内存溢出了),最恐怖的是就算你的ImageView的宽高只有10px,同样会占用那么多内存,这就是为什么需要做图片压缩的原因了
2.图片质量的压缩或者提高
在Glide里面默认用的是RGB_565,如果需要修改,相对于Picasso来说会更加麻烦一些,在之前的文章中,讲到过如何修改Glide的图片质量,这里就不再做介绍了
通过GlideModule定制Glide
http://blog.csdn.net/yulyu/article/details/55194237
3.图片尺寸的压缩或者拉伸(override)
通过调用override,就可以把图片压缩到相应的尺寸来显示了,类似这些被处理过的图片,就是之前文章中提到的RESULT(处理图)
Glide.with(this).load(mUrl).override(300,300).into(mIv);
注意,这里具体会压缩到什么尺寸还会根据很多条件来计算,所以最终压缩的结果的宽高会比较接近你的传值,但是不一定会完全相同,如果感兴趣的可以期待本系列后面的Glide源码解析中的具体介绍
(一般来说控件是什么尺寸就传入相应的宽高,这样是比较适合的压缩比例)
热门文章
- Glide-内存缓存与磁盘缓存
- Glide-自定义缓存
- Glide-入门教程
- Okhttputils终极封装
- FaceBook推出的调试神器
- Android代码优化工具
- Glide-图片的压缩
- 用Glide-图片的压缩-图片压缩原理
- Android Glide白色图片压缩变绿的问题解决
- Glide-图片的剪裁(ScaleType)
- Glide圆形图片的加载
- Glide-更多图片变换,glide-transformations的使用(六)
- Glide系列之五:Glide强大的图片变换功能
- Android图片之Glide(一),Glide的基本用法
- Android图片加载框架Glide之Glide的自定义模块
- Glide的图片加载库的使用
- Glide 的图片加载的使用
- Glide转化圆形图片的坑
- Glide-图片的加载和缓存
- Glide图片框架遇到的小坑
- Glide图片加载库的使用
- 超棒的Glide图片加载
- 39.Glide图片加载框架的使用
- Glide图片加载库的使用
- Git(1)/Git简介
- Ubuntu16.04下启动eclips
- LSM内核源代码分析与测试(一)
- BZOJ 1024, 生日快乐
- Android studio使用JNI实例
- Glide-图片的压缩
- 用gdb调试游戏服务端
- AngularJs服务-$location(暴露当前地址栏的URL)
- [cpp]C++中的宏定义
- shiro使用注解式和jsp标签的方式进行开发
- 快速幂 及 快速幂取模
- Linux支持中文及安装VIM IDE
- 算法笔记_023-拓扑排序(Java)
- C3p0连接池