surfaceView和View最本质的区别 此博文包含视频
来源:互联网 发布:weiphp绑定域名 编辑:程序博客网 时间:2024/06/18 03:22
surfaceView和View最本质的区别在于:
所以基于以上,根据游戏特点,一般分成两类。
1 被动更新画面的。比如棋类,这种用view就好了。因为画面的更新是依赖于 onTouch 来更新,可以直接使用 invalidate。 因为这种情况下,这一次Touch和下一次的Touch需要的时间比较长些,不会产生影响。
2 主动更新。比如一个人在一直跑动。这就需要一个单独的thread不停的重绘人的状态,避免阻塞main UI thread。所以显然view不合适,需要surfaceView来控制。
SurfaceView简介
1. 何时应该使用SurfaceView?
SurfaceView使用的方式与任何View所派生的类都是完全相同的。可以像其他View那样应用动画,并把它们放到布局中。
SurfaceView封装的Surface支持使用本章前面所描述的所有标准Canvas方法进行绘图,同时也支持完全的OpenGL ES库。
使用OpenGL,你可以再Surface上绘制任何支持的2D或者3D对象,与在2D画布上模拟相同的效果相比,这种方法可以依靠硬件加速(可用的时候)来极大地提高性能。
对于显示动态的3D图像来说,例如,那些使用Google Earth功能的应用程序,或者那些提供沉浸体验的交互式游戏,SurfaceView特别有用。它还是实时显示摄像头预览的最佳选择。
2. 创建一个新的SurfaceView控件
要创建一个新的SurfaceView,需要创建一个新的扩展了SurfaceView的类,并实现SurfaceHolder.Callback。
SurfaceHolder回调可以在底层的Surface被创建和销毁的时候通知View,并传递给它对SurfaceHolder对象的引用,其中包含了当前有效的Surface。
一个典型的Surface View设计模型包括一个由Thread所派生的类,它可以接收对当前的SurfaceHolder的引用,并独立地更新它。
下面的框架代码展示了使用Canvas所绘制的Surface View的实现。在Surface View控件中创建了一个新的由Thread派生的类,并且所有的UI更新都是在这个新类中处理的。
0 0
- surfaceView和View最本质的区别 此博文包含视频
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- surfaceView和View最本质的区别
- surfaceView和View最本质的区别
- surfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别
- SurfaceView和View最本质的区别(转)
- android--SurfaceView和View最本质的区别
- spring MVC interceptor post遇到问题
- linux 命令系列之 输入输出重定向(43)
- ABAP程序编写过程中怎么提高程序执行效率四
- Cordys BOP 4平台的子流程与嵌入子流程对比以及子流程建模技术
- 线性表的实现
- surfaceView和View最本质的区别 此博文包含视频
- 设计模式——工厂方法模式
- 再谈“我是怎么招聘程序员的”
- Grocery Store OpenCart 自适应主题模板 ABC-0327
- Spring定义事物通知tx:advice
- linux 命令系列之 多命令顺序执行和管道符(44)
- codeforces 60C Mushroom Strife ——DFS
- MyEclipse调试方法
- Cocos2d-x3.0模版容器详解之二:cocos2d::Map<K,V>