一如既往地放项目地址:
android-openGL-canvas
本文相关的代码:
BaseGLTextureView
本文主要说明GLTextureView,一个代替GLSurfaceView的自定义View。将会说明包括GLTextureView的优点,大致实现方式,以及使用。
优点
其实Android官方在Android 4.0以后推出TextureView,本意就是想代替GLSurfaceView。可是TextureView在里面并没有像GLSurfaceView那样封装好一个绘制线程以及OpenGL的初始化。所以GLTextureView将会实现这些部分。
GLTextureView的优点其实也包括TextureView的优点,在官方文档里也有说明: TextureView 不会创建一个分离的window,而是像一个普通的view那样显示, 这样就不会像GLSurfaceView那样,要么在所有View上方,要么被其它View遮住(看 setZOrderOnTop(boolean) 的说明)。而且像myView.setAlpha(0.5f)这种方法调用后也会有效果了。
实现方式
实现需要使用GLThread,这是由GLSurfaceView.GLThread改造过来的类,关于这个类的说明请看