View的setLayerType() , setDrawingCacheEnabled() 方法用法
一、Android开发:用getDrawingCache方法获取ImageView中的图像需要注意的问题
http://www.linuxidc.com/Linux/2011-09/43131.htm
1. 在调用getDrawingCache()方法从ImageView对象获取图像之前,一定要调用setDrawingCacheEnabled(true)方法:
iv_photo.setDrawingCacheEnabled(true);
否则,无法从ImageView对象iv_photo中获取图像;
2. 在调用getDrawingCache()方法从ImageView对象获取图像之后,一定要调用setDrawingCacheEnabled(false)方法:
iv_photo.setDrawingCacheEnabled(false);
以清空画图缓冲区,否则,下一次从ImageView对象iv_photo中获取的图像,还是原来的图像。
// ImageView对象(iv_photo)必须做如下设置后,才能获取其中的图像iv_photo.setDrawingCacheEnabled(true);// 在ImageView对象(iv_photo)被touch down的时候,获取ImageView中的图像obmp = Bitmap.createBitmap(iv_photo.getDrawingCache());//从ImaggeView对象中获取图像后,要记得调用setDrawingCacheEnabled(false)清空画图缓//冲区,否则,下一次用getDrawingCache()方法回去图像时,还是原来的图像iv_photo.setDrawingCacheEnabled(false);
二、mView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
Android应用程序UI硬件加速渲染的动画执行过程分析
http://blog.csdn.net/luoshengyang/article/details/46449677
http://blog.csdn.net/luoshengyang/article/details/45601143
我们提到了Render Thread对动画显示的两个优化。第一个优化是在动画显示期间,临时将动画的目标View的Layer Type设置为LAYER_TYPE_HARDWARE,这样就可以使得目标View以Open GL里面的Frame Buffer Object(FBO)进行渲染。这种优化的效果就如Render Thread直接以Open GL里面的Texture来渲染TextureView一样。第二个优化是在Main Thread不需要参与动画的显示过程时,动画就会被注册到Render Thread中,这样动画的计算和显示过程就完全由Render Thread来负责。这种优化带来的好处就是在动画显示期间,Main Thread可以去处理其它的用户输入,而且动画的显示也会更加流畅。
有了这个ViewPropertyAnimator对象之后,就可以调用它的成员函数withLayer将它关联的View的Layer Type设置为LAYER_TYPE_HARDWARE
mView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
可以看到:
1. 在动画开始显示之前,目标View的Layer Type会被设置为LAYER_TYPE_HARDWARE,并且它的成员函数buildLayer会被调用来创建一个Layer。
2. 在动画结束显示之后,目标View的Layer Type会被恢复为它之前的Layer Type。注意,这里调用目标View的成员函数getLayerType获得的是它的Layer Type未被设置为LAYER_TYPE_HARDWARE的Layer Type。
View的setLayerType() , setDrawingCacheEnabled() 方法用法相关推荐
- jQuery中slice()方法用法实例
本文实例讲述了jQuery中slice()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以选取匹配元素集的子集. 语法结构: 复制代码 代码如下: $(selector).slice(sta ...
- element弹框的的this.$alert、this.$prompt方法用法
element弹框的的this.alert.this.alert.this.alert.this.prompt方法用法
- php中sisson用法,thinkPHP中session()方法用法详解
本文实例讲述了thinkPHP中session()方法用法.分享给大家供大家参考,具体如下: 系统提供了Session管理和操作的完善支持,全部操作可以通过一个内置的session函数完成. 用法 s ...
- java中prepend的用法_jQuery中prepend()方法用法实例
本文实例讲述了jQuery中prepend()方法用法.分享给大家供大家参考.具体分析如下: 此方法可向所有匹配元素的内部的前面追加HTML内容. 特别说明: 此方法是追加内容,也就是原来的内容还在. ...
- jquery ajax实例get,jQuery中ajax的get()方法用法实例
本文实例讲述了jQuery中ajax的get()方法用法.分享给大家供大家参考.具体分析如下: $.get()通过 HTTP GET请求从服务器上请求数据. 语法结构: $.get(url, [dat ...
- python中字典的get函数是什么意思_python字典get()方法用法分析
本文实例讲述了python字典get()方法用法.分享给大家供大家参考.具体分析如下: 如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方 ...
- jquery append()方法与html()方法用法区别
jquery append()方法与html()方法用法区别 [导读] append(content):方法在被选元素的结尾(仍然在内部)插入指定内容,有很多朋友觉得append与html差不多,其它 ...
- Android View的坐标获取方法
Android View的坐标获取方法 Android系统中提供了很多方法来获取view的坐标值,相对距离等,但是方法多在使用上就容易产生混淆,这里总结下自己学到的知识,分享给有需要的人. 如图所示: ...
- java的dequeue_jQuery中dequeue()方法用法实例
本文实例讲述了jQuery中dequeue()方法用法.分享给大家供大家参考.具体分析如下: 此函数能够从队列最前端移除一个队列函数,并执行它.建议和queue()函数一起学习. 语法结构: $(se ...
- java appendto方法_jQuery中appendTo()方法用法实例
本文实例讲述了jQuery中appendTo()方法用法.分享给大家供大家参考.具体分析如下: 此方法把匹配的元素插入指定元素结尾,插入位置在元素的内部. appendTo()方法的作用和append ...
最新文章
- 【学习笔记】Android 图像处理
- 多功能PCIE交换机之三:PCIE非透明桥 cache一致性
- mysql删除表命令_MySQL创建和删除表操作命令实例讲解
- Python Django列表渲染for的使用
- CommonJS/AMD/CMD/UMD
- matlab中的terminator模块,2.2 Ground 及 Terminator模块
- hook(钩子函数)
- 数值分析(10)-数值微分
- Python学习笔记—条件判断和循环
- 开源icon、SVG、字体图标库收集
- 简约html5动态个人简历,HTML5 简约风格的程序员简历模板
- 【软件工程导论】期末复习重点
- Systrace 响应速度实战 1 :了解响应速度原理
- 个人管理 - 如何演讲
- HTML5实时显示摄像头视频
- 44.网络安全渗透测试—[穷举篇7]—[网站会员批量登录穷举]
- Visual Studio 2019 Community 许可证过期解决方法
- ZZNUOJ_C语言1134:字符串转换(附完整源码)
- 想要轻松玩转Markdown?goldmark帮你实现!
- AVL树的操作及调整成AVL树
热门文章
- Atitit 互联网技术公司防爆指南技术规范标准流程 30个危险物品
- paip.提升性能---并行多核编程哈的数据结构list,set,map
- (转)马云又在押宝智能投顾!
- 阿里云实时数据加工服务的设计及实践
- 35+大龄程序员被清退?
- 加速新冠疫苗研发,阿里云免费开放一切AI算力!
- 【情感识别】基于matlab支持向量机(SVM)语音情感识别【含Matlab源码 543期】
- java写原生js_[Java教程]原生JS拖拽
- 查询解析MySQL_mysql内部查询过程详解
- 使用高德地图打车软件实现_强化学习:使用Q学习来打车!