View组件显示的内容能够通过cache机制保存为bitmap, 主要有下面方法:

void  setDrawingCacheEnabled(boolean flag), 


Bitmap  getDrawingCache(boolean autoScale), 


void  buildDrawingCache(boolean autoScale), 


void  destroyDrawingCache()

我们要获取cache首先要通过setDrawingCacheEnable方法开启cache,然后再调用getDrawingCache方法就能够获得view的cache图片了。

buildDrawingCache方法能够不用调用。由于调用getDrawingCache方法时,若果cache没有建立,系统会自己主动调用buildDrawingCache方法生成cache。

若想更新cache, 必需要调用destoryDrawingCache方法把旧的cache销毁。才干建立新的。

当调用setDrawingCacheEnabled方法设置为false, 系统也会自己主动把原来的cache销毁。

   
另外,ViewGroup在绘制子view时,也提供了两个方法

void setChildrenDrawingCacheEnabled(boolean enabled) 


setChildrenDrawnWithCacheEnabled(boolean enabled) 

setChildrenDrawingCacheEnabled方法能够使viewgroup里全部的子view开启cache;

setChildrenDrawnWithCacheEnabled使在绘制子view时。若该子view开启了cache, 则使用它的cache进行绘制。从而节省绘制时间。

获取cache一般会占用一定的内存,所以通常不须要的时候有必要对其进行清理,通过destroyDrawingCache或setDrawingCacheEnabled(false)实现。

安卓View的缓冲机制的更多相关文章

  1. Android面试必问!View 事件分发机制,看这一篇就够了!

    在 Android 开发当中,View 的事件分发机制是一块很重要的知识.不仅在开发当中经常需要用到,面试的时候也经常被问到. 如果你在面试的时候,能把这块讲清楚,对于校招生或者实习生来说,算是一块不 ...

  2. Atitit View事件分发机制

    1. Atitit View事件分发机制 1. Atitit View事件分发机制1 1.1. 三个关键方法 dispatchTouchEvent onInterceptTouchEvent onTo ...

  3. java : 包装类 缓冲机制的使用(转载)

    摘要: 八种基本数据类型和其包装类中 Integer valueOf(int i).Byte valueOf(byte b).Short valueOf(short s).Long valueOf(l ...

  4. GO语言练习:channel 缓冲机制

    1.代码 2.运行 3.解析 1.代码 buffer.go package main import ( "fmt" "time" ) func readThre ...

  5. 关于RecyclerView中Viewholder和View的缓存机制的探究

    关于RecyclerView中Viewholder和View的缓存机制的探究 http://www.cnblogs.com/littlepanpc/p/4241575.html

  6. Android 中View的绘制机制源代码分析 三

    到眼下为止,measure过程已经解说完了,今天開始我们就来学习layout过程.只是在学习layout过程之前.大家有没有发现我换了编辑器,哈哈.最终下定决心从Html编辑器切换为markdown编 ...

  7. Android View的绘制机制流程深入详解(四)

    本系列文章主要着重深入介绍Android View的绘制机制及流程,第四篇主要介绍Android自定义View及ViewGroup的实现方法和流程. 主要介绍了自绘控件.自定义组合控件.自定义继承控件 ...

  8. Android View的绘制机制流程深入详解(三)

    本系列文章主要着重深入介绍Android View的绘制机制及流程,第三篇主要介绍并分析视图状态以及重绘流程,首先剖析了 视图的几种状态,然后在深入分析视图的重绘机制流程. 真题园网:http://w ...

  9. Android View的绘制机制流程深入详解(二)

    本系列文章主要着重深入介绍Android View的绘制机制及流程,第二篇主要介绍并分析Android视图的绘制的原理和流程.主要从 onMeasure().onLayout()和onDraw()这三 ...

随机推荐

  1. MyBatis学习总结(10)——批量操作

    一.mybatis中的批量操作    批量操作核心就是一次传入多个数据然后进行相关操作,增删改查中掌握其中一个其他的也不成问题 1.最新在做的短信平台,要批量插入群发的短信记录: 当然批量操作还有:批 ...

  2. jquery快速清除复选框、单选框的选中

    $(":checked").attr("checked", "");

  3. leetCode 36.Valid Sudoku(有效的数独) 解题思路和方法

    Valid Sudoku Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku bo ...

  4. 推荐一款优雅的jquery手风琴特效

    推荐一款基于 jQuery和 CSS3实现的手风琴效果. 查看demo演示

  5. 改动npm包管理器的registry为淘宝镜像(npm.taobao.org)

    起因 安装了node.安装了npm之后,官方的源实在是 太慢了! 看了看淘宝的npm镜像, http://npm.taobao.org/  居然说让我再下载一个cnpm,要不然就每次都得install ...

  6. Dubbo源代码分析(三):Dubbo之服务端(Service)

    如上图所看到的的Dubbo的暴露服务的过程,不难看出它也和消费者端非常像,也须要一个像reference的对象来维护service关联的全部对象及其属性.这里的reference就是provider. ...

  7. [BZOJ4826][HNOI2017]影魔 可持久化线段树

    链接 题意:给你 \(1\) 到 \(n\) 的排列 \(k_1,k_2,\dots,k_n\) ,对 \(i,j (i<j)\)来说,若不存在 \(k_s (i<s<j)\) 大于 ...

  8. Ubuntu 16.04 实现有线 无线同时用

    因为工作的原因,经常会用有线网卡连接服务器进行配置,无线网卡上外网. 一.查看当前网关信息 pipci@ubuntu:~$ ip route showdefault via 192.168.2.1 d ...

  9. Linux下java/bin目录下的命令集合

    Linux下JAVA命令(1.7.0_79) 命令 详解 参数列表 示例 重要程度 资料 appletviewer Java applet 浏览器.appletviewer 命令可在脱离万维网浏览器环 ...

  10. mkdi---创建目录。

    mkdir命令用来创建目录.该命令创建由dirname命名的目录.如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录:如果给出了一个已经存在的路径,将会在该目录下创建一个 ...