android – 从GLSurfaceView转换为TextureView(通过GLTextureView)

当Android 4.0(Ice Cream Sandwich)发布时,sdk中引入了一个新视图。这个View是TextureView。在文档中,它说TextureView可以用于显示OpenGL场景的内容。

当您查看如何执行此操作时,您会发现此链接为一个示例。

https://groups.google.com/forum/?fromgroups=#!topic/android-developers/U5RXFGpAHPE

然而,我想用TextureView替换GLSurfaceView,并且保持其余的代码是一样的,只需要获得TextureView的优点。

回答:

1)从GLSurfaceView的源代码开始,将文件命名为GLTextureView.java

2)将标题更改为:
GLTextureView扩展了TextureView实现的SurfaceTextureListener

3)将构造函数重命名为GLTextureView。从init()方法中删除代码。

4)组织进口始终选择非GLSurfaceView选项。

5)找到SurfaceHolder的每个实例,并将其更改为SurfaceTexture

6)为SurfaceTextureListener添加未实现的方法,每种方法应如下所示:

> onSurfaceTextureAvailable – surfaceCreated(surface)
> onSurfaceTextureDestroyed – surfaceDestroyed(surface),(return true)
> onSurfaceTextureSizeChanged – surfaceChanged(surface,0,width,height)
> onSurfaceTextureUpdated – requestRender()

7)应该有一行要调用getHolder(),将其改为getSurfaceTexture()

8)在init()方法中,放置以下行setSurfaceTextureListener(this)

然后添加一个OnLayoutChangeListener,并调用surfaceChanged(getSurfaceTexture(),0,right – left,bottom-top)。

因此,您应该可以用GLTextureView替换GLSurfaceView代码,并获得GLTextureView的优点。还要确保您的应用程序支持硬件加速,并且您的Renderer扩展GLTextureView.Renderer。

http://stackoverflow.com/questions/12061419/converting-from-glsurfaceview-to-textureview-via-gltextureview

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:android – 从GLSurfaceView转换为TextureView(通过GLTextureView)