Android View与SurfaceView相比,GLSurfaceView适用于具有Zoomable用户界面的2D绘图应用

时间:2014-11-04 15:35:57

标签: android opengl-es android-view surfaceview glsurfaceview

我打算用可缩放的用户界面编写一个2D绘图应用程序。使用该应用程序,用户应该能够转换(平移和缩放)绘制的路径(当然还有UI)。我假设同时会有多达500个路径。 现在,我想知道从哪个视图开始(View,SurfaceView或GLSurfaceView)以提供可接受的性能。我阅读了几篇帖子[1-6],包括曾经在android开发人员指南上发表的文章,我仍然不能100%确定要使用的视图。

根据Google I / O 2009(http://youtu.be/U4Bk5rmIpic?t=45m10s)的演示文稿和自己的体验画布(View和SurfaceView)在处理100多个路径时似乎没有足够快的表现。

有没有人看到使用canvas实现应用程序的可能性,还是OpenGL的方式?

[1] Android: Deciding between SurfaceView and OpenGL (GLSurfaceView)

[2] SurfaceView or GLSurfaceview?

[3] Difference between SurfaceView and View?

[4] http://pierrchen.blogspot.jp/2014/03/anroid-graphics-surfaceview-all-you.html

[5] Difference between SurfaceView and ImageView

[6] Difference between SurfaceView and GLSurfaceView in Android

1 个答案:

答案 0 :(得分:2)

由于您的性能问题,您需要使用硬件渲染。显示器越来越密集,因此触摸软件中的每个像素都会变慢。

如果要使用Canvas进行绘制,则必须渲染到自定义视图,并启用hardware acceleration。 Surface上的画布渲染始终使用软件完成。

SurfaceView和GLSurfaceView几乎是一回事; GLSurfaceView只有一些辅助功能,可以为您处理一些内务管理。您可以使用GLES在SurfaceView和TextureView上渲染。 Grafika中有多个这样的例子。

如果您want to know幕后发生了什么,请参阅System-Level Graphics Architecture文档。

您可能需要考虑使用开源2D游戏引擎。这将处理EGL设置,应提供GLES字体渲染的代码,等等。

相关问题