如果开启了硬件加速,它们两者是没有关系的。一个先执行,一个后执行。

如果View Layer type is VIEW_LAYER_NONE, 生成display list,然后加上alpha送入GPU执行。

如果是VIEW_LAYER_SOFTWARE, 在软件层面生成layer(其实就是一个screen cache),然后加上alpha送入GPU执行。

如果是VIEW_LAYER_HARDWARE, 用GPU执行display list,然后加上alpha送入GPU执行。

如果没有动画,只是执行一遍,NONE和HARDWARE是没有区别的,甚至NONE会更快,因为不需要分配layer空间,也不需要把layer数据拷贝到GPU,所以默认是NONE的。

但如果有动画,这就有区别的,动画一般都是旋转,大小变化,alpha变化等等,是可以通过view cache(layer)+ alpha(或者其他)来组合到GPU执行的,每次动画只是在layer基础上做一次转换,GPU在处理这种情况是非常容易的。

因为考虑到layer分配和传输的消耗,只有当动画比较复杂的时候,也就是不能满足60fps的时候,才去考虑HARDWARE layer,因为在播放动画之前,需要调用所有view的buildLayer函数来生成layer。这将会有一个delay,如果生成一个displaylist所需要的数据传输不大(比如没有大图片,只是一些颜色,path之类的简单数据),HARDWARE是绝佳选择。

如果想更快的提高速度,提前buildLayer,动画的时候速度嗖嗖的。

setAlpha与View Layer关系的更多相关文章

  1. self.view.layer.contents 和 self.view.backgroundColor

    一. self.view.layer.contents 和 self.view.backgroundColor 今天测了一下 :    self.view.layer.contents 和 self. ...

  2. Activity Window View的关系

    http://blog.csdn.net/chiuan/article/details/7062215 http://blog.163.com/fenglang_2006/blog/static/13 ...

  3. 动态加载Layout 与 论Activity、 Window、View的关系

    1)动态加载Layout的代码是 getWindow().setContentView(LayoutInflater.from(this).inflate(R.layout.main, null)); ...

  4. Activity Window View WindowManager关系&Touch事件分发机制

    http://www.cnblogs.com/linjzong/p/4191891.html https://www.cnblogs.com/kest/p/5141817.html https://b ...

  5. 动态载入Layout 与 论Activity、 Window、View的关系

    1)动态载入Layout的代码是 getWindow().setContentView(LayoutInflater.from(this).inflate(R.layout.main, null)); ...

  6. ios中图层和view的关系

    -(void)viewMethod{ //1: 要明白uiview内部是这样实现 CALayer *layer1= [CALayer layer]; layer.delegate=self; [lay ...

  7. ios开发中view.layer.shouldRasterize = YES 的使用说明

    在做一个NavigationController push 子页面时,发现push和pop时很卡,研究了一大阵子后,发现在子页面里影响UI流畅的只有UIImageView的圆角设置:然后我就关闭了圆角 ...

  8. 底层剖析 Window 、Activity、 View 三者关系

    不管工作几年的 Android 工程师,或多或少都听说过 Window 的概念,并且隐隐约约感觉它在 Activity 与 View 之间应该发挥着某种连接的作用.但是如果需要说出这 3 者之间的关系 ...

  9. activity 、window与view的关系(下)

    在activity的attacth方法中,通过policymanager 的makenewwindow来创建window 而window的具体实现是phonewindow 接下来通过setconten ...

随机推荐

  1. 客户端JavaScript-如何执行

    客户端JavaScript程序有四部分:内联脚本.HTML事件处理程序.URL中的JavaScript.外联脚本:所有这些单独的代码共用同一个全局Window对象,它们可以看到相同的Document对 ...

  2. CI框架3

    1.CI不能像smarty那样直接{}访问,  <?php echo $ci;?> application\config\ config.php 日志查看      $config['lo ...

  3. [转自itilxf论坛]iTop百问百答

    iTop是什么,和其他itsm软件相比有什么优势?iTop,是一个开源web应用程序,用于IT环境的日常运营.它基于ITIL最佳实践,而又不拘泥于任何具体流程. 优势: 1. 开源,扩展性强容易开发. ...

  4. Python强化训练笔记(六)——让字典保持有序性

    python的字典是一个非常方便的数据结构,使用它我们可以轻易的根据姓名(键)来找到他的成绩,排名等(值),而不用去遍历整个数据集. 例如:{'Lee': [1, 100], 'Jane': [2, ...

  5. python - socket - connection

    前面有了TCP server和TCP client.在这个文章中我们建立tcp连接并且进行数据的发送. 例子,经常用到的echo功能.TCP client连接到server, 向server发送mes ...

  6. JQuery中的DOM操作

    JQuery中有很多DOM操作,但是因为之前没有总结过,所以用来用去都是那几个,一写html中的表单交互,尤其是那些复杂的表单交互,就是一大坨的js,我自己看着都费劲. 所以我感觉有必要总结一下 &l ...

  7. h5的离线缓存机制

    什么是Manifest: 其实Manifest是一个简单的 文本文件,它的扩展名是任意的,定义需要缓存的文件.资源,当第一次打开时,浏览器会自动缓存相应的资源. Manifest 的特点: 离线浏览: ...

  8. android开发中的问题总结(一)

    1.设置sdk路径 window->preferences->android->SDK location 中进行修改,如果出现红叉,就说明不正确,选择的路径必须包含tools的那个目 ...

  9. 对bootstrap中confirm alert进行封装

    HTML: <!-- system modal start --> <div id="ycf-alert" class="modal"> ...

  10. VS2013 ViewData ViewBag Ajax等关键词报错(当前上下文不存在名称)而且不提示也点不出来,但是可以正常运行,

    这个多数问题是因为 视图 的Web.config 内的配置问题 在Views文件夹下  有一个Web.config文件,把里面的版本号(System.Web.Mvc, Version=5.2.2.0) ...