谁能告诉我SurfaceView和GLSurfaceView之间的基本区别是什么?我何时应该使用SurfaceView,何时应该使用GLSurfaceView?
我在Stack Overflow上阅读了一些已经回答的问题,但是它们不能满足我的疑问。
任何帮助都将不胜感激。
答案 0 :(得分:28)
GLSurfaceView
是SurfaceView
,您可以使用OpenGL进行渲染。在它们之间进行选择很简单:
GLSurfaceView
。SurfaceView
。 OpenGL是低级别的。如果你还不熟悉它,那就是学习的一项任务。如果您只需要2D绘图,SurfaceView
会使用高级,合理的高性能Canvas。这很容易使用。
除非您有充分理由使用GLSurfaceView
,否则您应该使用常规SurfaceView
。我建议如果你还不知道你需要GL,那么你可能不会。
答案 1 :(得分:6)
GLSurfaceView是3D应用程序的主要构建块,因为View适用于2D应用程序。它不仅广泛应用于3D游戏,还广泛应用于摄像机等多媒体应用,以创造特殊的预览效果。
GLSurfaceView扩展了SurfaceView,另外还拥有一个渲染线程和一个由客户端设置的渲染对象。渲染线程持续或按需运行,并委托渲染对象使用OpenGL API绘制帧。对于SurfaceView和GLSurfaceView,渲染在主线程以外的单独线程中执行。不同之处在于SurfaceView渲染线程由客户端创建,而GLSurfaceView则由系统创建。而且,GLSurfaceView将在内部处理主线程和渲染线程之间的同步。
答案 2 :(得分:5)
<强> SurfaceView 强>
AFAIK Canvas在2D绘图中易于实现和有效,但不支持3D绘图
<强> GLSurfaceView 强>
如果你想设计一些3D游戏,你可以选择使用GLSurfaceView和OGLES
我的经验是,如果您只是想进行2D处理,那么选择Canvas,因为它比GLSurfaceView更容易实现和有效。