本文主要是对慕课网qndroid老师视频教程的总结,视频链接
Bitmap基本概念
Bitmap并不是只属于Android的概念;Bitmap(又称栅格图、点阵图)是使用像素阵列来表示的图像。
对于android而言:
1.Bitmap是Android系统中的图像处理的最重要类之一。
2.通过Bitmap我们可以获取图片的信息。
比如图片宽、高、Alpha值,也可以根据这个Bitmpa再创建新的BItmap等等。
3.获取到信息后,可以对其进行缩放,裁剪等操作。
本文主要是对Bitmap加载和缓存进行讲解。
有关bitmap的加载,总而言之一句话:
Bitmap为我们提供了对图像文件的操作支持,就像File类为我们提供了对本地文件操作一样。
Bitmap加载方式
Bitmap有以下几种加载方式:
1.BitmapFactory.decodeByteArray() 字节数组
2.BitmapFactory.decodeFile() 文件路径
3.BitmapFactory.decodeResource() 资源ID
4.BitmapFactory.decodeStream() 流
Demo:
缓存
客户端的缓存,就是讲从服务器请求到的数据(Json,File)等保存到本地,这就是缓存
缓存的优势
1.对一些不是经常繁盛变化的数据,直接使用本地缓存,提升应用响应速度(流畅性)
2.不再频繁的请求服务器,可以降低服务器的负载压力(这点很重要)
3.一些特殊场景下的使用,例如:离线阅读
常用使用场景
1.对Bitmap和File等大数据进行缓存,无需每次都从服务器下载,尤其是ListView或者RecycleView
2.数据更新不需要实时更新,采用缓存机制
常用缓存策略
1.android LruCache实现内存缓存
2.android DiskLruCache实现硬盘缓存
3.SQLite实现缓存(不重要)【因为存到数据库是存到本地的】
图片三级缓存:
1.LruCache
2.本地存储
3.网络获取
一般是先从内存缓存中取,如果取不到,那么就从本地存储中查找,还找不到就去网络请求。
需要三级缓存代码的留言即可。