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,第二个参数图片质量,质量越高则图片还原到原图越接近,同时占用内存越大,最大可百分比还原,第三个是流,选择什么类型的流写入到文件里面去

这里就是一种形式,图片处理,当然这个是最基础的

通过循环压缩,当满足我们的需求大小的时候才跳出循环

图片的三级缓存机制

首先我们需要一张图片,这个时候我们有很多途径去获得,直接网络请求一张,或者从本地拿,那么怎样使最快的呢,这就涉及到图片的缓存机制了,这个机制并非是处理内存占据大小的,而是优化用户体验,节省流量的

  1. 从缓存中直接去拿:当前缓存已经存在了,直接去拿相当于是已经预加载状态,快速不需要流量
  2. 从本地缓存目录获取,这个时候需要去读取本地文件,需要权限,耗时也很短,比第一种稍长,不需要流量,拿到之后再将图片加入到缓存中去
  3. 第三种是缓存和本地缓存目录都没有的情况下,就只能去网络获取了,这种耗时长且损耗流量,当然第一次还是需要这个操作的,拿到之后将图片加入到缓存和本地缓存目录,为下一次加载提供数据

这里我就分享一些基础性的,更深层次的我还没理解到位,就不给大家分享了

给大家分享一波学习链接,郭神的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的图片缓存处理相关推荐

  1. 【MDCC 2015】开源选型之Android三大图片缓存原理、特性对比

    from: http://www.csdn.net/article/2015-10-21/2825984 [CSDN现场报道]10月14日-16日," 2015移动开发者大会 · 中国&qu ...

  2. Android的图片缓存ImageCache(转)

    为什么要做缓存?       在UI界面加载一张图片时很简单,然而如果需要加载多张较大的图像,事情就会变得更加复杂.在许多情况下(如ListView.GridView或ViewPager等的组件),屏 ...

  3. Android之图片缓存管理

    如果每次加载同一张图片都要从网络获取,那代价实在太大了.所以同一张图片只要从网络获取一次就够了,然后在本地缓存起来,之后加载同一张图片时就从缓存中加载就可以了.从内存缓存读取图片是最快的,但是因为内存 ...

  4. Android三级图片缓存框架思路【附练习Demo】

    缓存的简介 现在android应用中不可避免的要使用图片,有些图片是可以变化的,需要每次启动时从网络拉取,这种场景在有广告位的应用以及纯图片应用(比如百度美拍)中比较多.
        现在有一个问 ...

  5. Android 三大图片缓存原理、特性对比

    一. 四大图片缓存基本信息 Universal ImageLoader 是很早开源的图片缓存,在早期被很多应用使用. Picasso 是 Square 开源的项目,且他的主导者是 JakeWharto ...

  6. Android中图片缓存、显示框架Glide的介绍与使用

    1 介绍 Glide是一个快速高效的Android图片加载库,注重于平滑的滚动.Glide提供了易用的API,高性能.可扩展的图片解码管道(decode pipeline),以及自动的资源池技术. G ...

  7. Android获取图片缓存及清除

    封装一个类 package com.jianong.xmtt.util;import android.content.Context; import android.os.Environment;im ...

  8. android自定义图片缓存,适用于Android的本地图像缓存解决方案:Squ...

    更新于2018年9月:几年后,我需要与本地图像缓存解决方案几乎相同的东西.这一次,UIL尚未积极开发.我比较了流行的库,结论很简单:只需使用Glide.它功能强大且可配置.多年前我不得不分叉并对UIL ...

  9. android webview 图片缓存,WebView 图片离线缓存(含图片)

    自打去年十一来到掘金,就想着有一点一定会做 WebView 离线缓存,作为一个阅读类 app,不敢想象在没有离线缓存的情况下是怎么撑了这么久的

最新文章

  1. Vue性能优化:如何实现延迟加载和代码拆分?
  2. WSL windows子系统开启ssh-server服务
  3. 操作多个表_2_组合相关的行
  4. 张高兴的 .NET Core IoT 入门指南:环境配置、Blink、部署
  5. 2021 NOI游记
  6. 原来,这就叫“不值得定律”
  7. 基于C#木门归方程序 下料机 锯片 CNC 拆单软件 全屋定制设计拆单软件橱柜衣柜拆单设计制造管理一体化软件 有屋软件
  8. C语言波形实现三角波和正弦波
  9. 如何将mp3转换flac音频文件格式
  10. 黑色的计算机英语,黑色英文怎么说_黑色的英文怎么写 - 沪江英语
  11. 监控mysql锁定状态_mysql InnoDB锁等待的查看及分析
  12. Python 反编译:pycdc工具的使用
  13. Apache Flink_JZZ166_MBY
  14. 送你一份迷你书,全面了解如何做好大促技术备战
  15. Vue install 失败的一些解决办法
  16. HP WINDOWS XP PRO SP3 OEM 中文简体完整版
  17. npm run build报错Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of
  18. 求n的阶乘,求1~n的阶乘和(循环)
  19. 字节社交转向:放弃飞聊,押注元宇宙社交
  20. 02 推荐算法-(01) Model-Based 协同过滤算法

热门文章

  1. OA成为中国制造企业的最大挑战
  2. 字节笔试题(含答案)
  3. 现在完成时与其他时态的区别
  4. 网络:简述对家庭宽带和专线(企业宽带)的认识
  5. 向毕业妥协系列之机器学习笔记:决策树(一)
  6. linux的java环境配置,jdk,tomcat,redis,maven,mysql
  7. 华强北3代耳机介绍,华强北耳机可靠吗?值得买吗?哪里买?
  8. ubuntu中的坑——Ubuntu18.04进入tty界面
  9. 中国信息化系统集成行业协会:企业信息化系统集成
  10. python----3/4 列表简介、操作列表