博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
View的setLayerType() , setDrawingCacheEnabled() 方法用法
阅读量:5856 次
发布时间:2019-06-19

本文共 1707 字,大约阅读时间需要 5 分钟。

一、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。

你可能感兴趣的文章
搭建开发环境
查看>>
sublime text 3 设置默认自动换行
查看>>
WPF使用cefsharp 下载地址
查看>>
iOS 11开发教程(十六)iOS11应用视图之删除空白视图
查看>>
图像滤镜艺术---Hudson滤镜(Instagram)
查看>>
require.js使用
查看>>
springboot2.x版本整合redis(单机/集群)(使用lettuce)
查看>>
让动态创建的ActiveX控件响应Windows消息
查看>>
获取docker容器的ip地址
查看>>
[PAL编程规范]SAP HANA PAL多项式回归预测分析Polynomial Regression编程规范FORECASTWITHPOLYNOMIALR(预测)...
查看>>
[na]office 2010 2013卸载工具
查看>>
Java基础语法(第1章变量)
查看>>
Dynamic Performance Tables not accessible Automatic Statistics Disabled for this session
查看>>
Javascript中的对象和原型(一)(转载)
查看>>
SQL Server 2005 数据库复制(转载)
查看>>
Lua 服务器与客户端实例(转)
查看>>
C# 对sharepoint 列表的一些基本操作,包括添加/删除/查询/上传文件给sharepoint list添加数据...
查看>>
Spring Boot 学习(2)
查看>>
Scrapy-Cluster结合Spiderkeeper管理分布式爬虫
查看>>
YII分模块加载路由
查看>>