Android的图片缓存处理
Android的bitmap
Bitmap:称为位图文件,扩展名可以是.bmp或者.dib。
Bitmap图片定义为由像素点组成,每个像素点可以由多种色彩表示
下面是四种色彩格式
ARGB_8888:ARGB分别代表的是透明度,红色,绿色,蓝色,每个值分别 用8bit来记录,也就是一个像素会占用4byte,共32bit.
ARGB_4444:ARGB的是每个值分别用4bit来记录,一个像素会占用 2byte,共16bit.
RGB_565:R=5bit,G=6bit,B=5bit,不存在透明度,每个像素会占用2byte, 共16bit.
ALPHA_8:该像素只保存透明度,会占用1byte,共8bit.
在实际应用中而言,建议使用ARGB_8888以及RGB_565。 如果你不需要透明度,选择RGB_565,可以减少一半的内存占用.
一张图片占据多大内存呢,举个例子:我的手机为例
我手机是1920*1080的分辨率,使用默认的ARGB_8888,那么大小是:
1920*1080*(32/8)/1024/1024 = 7.91M
由此可见,对于图片处理的重要性
加下来就说说图片处理
以我的电子签名为例子
首先我签名后会生成一张bitmap,然后我通过本地存储,将图片进行处理后保存
源码:compress(Bitmap.CompressFormat format, int quality, OutputStream stream)
第一个参数转化为什么格式,比如png,第二个参数图片质量,质量越高则图片还原到原图越接近,同时占用内存越大,最大可百分比还原,第三个是流,选择什么类型的流写入到文件里面去
这里就是一种形式,图片处理,当然这个是最基础的
通过循环压缩,当满足我们的需求大小的时候才跳出循环
图片的三级缓存机制
首先我们需要一张图片,这个时候我们有很多途径去获得,直接网络请求一张,或者从本地拿,那么怎样使最快的呢,这就涉及到图片的缓存机制了,这个机制并非是处理内存占据大小的,而是优化用户体验,节省流量的
- 从缓存中直接去拿:当前缓存已经存在了,直接去拿相当于是已经预加载状态,快速不需要流量
- 从本地缓存目录获取,这个时候需要去读取本地文件,需要权限,耗时也很短,比第一种稍长,不需要流量,拿到之后再将图片加入到缓存中去
- 第三种是缓存和本地缓存目录都没有的情况下,就只能去网络获取了,这种耗时长且损耗流量,当然第一次还是需要这个操作的,拿到之后将图片加入到缓存和本地缓存目录,为下一次加载提供数据
这里我就分享一些基础性的,更深层次的我还没理解到位,就不给大家分享了
给大家分享一波学习链接,郭神的bitmap解析
https://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650243893&idx=1&sn=63fe28bbd9204b5f808708e14e57e1e8&chksm=8863725abf14fb4cf0cb60074e3224c3ea4852b44948d48f8ea0e45ccf21f0cf595459ec6b36&mpshare=1&scene=1&srcid=09057IcDQK6dPg6Od2rNmnXA#rd
Android的图片缓存处理相关推荐
- 【MDCC 2015】开源选型之Android三大图片缓存原理、特性对比
from: http://www.csdn.net/article/2015-10-21/2825984 [CSDN现场报道]10月14日-16日," 2015移动开发者大会 · 中国&qu ...
- Android的图片缓存ImageCache(转)
为什么要做缓存? 在UI界面加载一张图片时很简单,然而如果需要加载多张较大的图像,事情就会变得更加复杂.在许多情况下(如ListView.GridView或ViewPager等的组件),屏 ...
- Android之图片缓存管理
如果每次加载同一张图片都要从网络获取,那代价实在太大了.所以同一张图片只要从网络获取一次就够了,然后在本地缓存起来,之后加载同一张图片时就从缓存中加载就可以了.从内存缓存读取图片是最快的,但是因为内存 ...
- Android三级图片缓存框架思路【附练习Demo】
缓存的简介 现在android应用中不可避免的要使用图片,有些图片是可以变化的,需要每次启动时从网络拉取,这种场景在有广告位的应用以及纯图片应用(比如百度美拍)中比较多. 现在有一个问 ...
- Android 三大图片缓存原理、特性对比
一. 四大图片缓存基本信息 Universal ImageLoader 是很早开源的图片缓存,在早期被很多应用使用. Picasso 是 Square 开源的项目,且他的主导者是 JakeWharto ...
- Android中图片缓存、显示框架Glide的介绍与使用
1 介绍 Glide是一个快速高效的Android图片加载库,注重于平滑的滚动.Glide提供了易用的API,高性能.可扩展的图片解码管道(decode pipeline),以及自动的资源池技术. G ...
- Android获取图片缓存及清除
封装一个类 package com.jianong.xmtt.util;import android.content.Context; import android.os.Environment;im ...
- android自定义图片缓存,适用于Android的本地图像缓存解决方案:Squ...
更新于2018年9月:几年后,我需要与本地图像缓存解决方案几乎相同的东西.这一次,UIL尚未积极开发.我比较了流行的库,结论很简单:只需使用Glide.它功能强大且可配置.多年前我不得不分叉并对UIL ...
- android webview 图片缓存,WebView 图片离线缓存(含图片)
自打去年十一来到掘金,就想着有一点一定会做 WebView 离线缓存,作为一个阅读类 app,不敢想象在没有离线缓存的情况下是怎么撑了这么久的
最新文章
- Vue性能优化:如何实现延迟加载和代码拆分?
- WSL windows子系统开启ssh-server服务
- 操作多个表_2_组合相关的行
- 张高兴的 .NET Core IoT 入门指南:环境配置、Blink、部署
- 2021 NOI游记
- 原来,这就叫“不值得定律”
- 基于C#木门归方程序 下料机 锯片 CNC 拆单软件 全屋定制设计拆单软件橱柜衣柜拆单设计制造管理一体化软件 有屋软件
- C语言波形实现三角波和正弦波
- 如何将mp3转换flac音频文件格式
- 黑色的计算机英语,黑色英文怎么说_黑色的英文怎么写 - 沪江英语
- 监控mysql锁定状态_mysql InnoDB锁等待的查看及分析
- Python 反编译:pycdc工具的使用
- Apache Flink_JZZ166_MBY
- 送你一份迷你书,全面了解如何做好大促技术备战
- Vue install 失败的一些解决办法
- HP WINDOWS XP PRO SP3 OEM 中文简体完整版
- npm run build报错Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of
- 求n的阶乘,求1~n的阶乘和(循环)
- 字节社交转向:放弃飞聊,押注元宇宙社交
- 02 推荐算法-(01) Model-Based 协同过滤算法