Zac*_*ean 6 android opengl-es surfaceview glsurfaceview textureview
有没有一种好方法可以View在a之上绘制标准Android对象GLSurfaceView并同步两层之间的移动?
我的布局看起来像
\n<FrameLayout>\n <RelativeLayout>\n <MyCustomGLSurfaceView>\n</FrameLayout>\nRun Code Online (Sandbox Code Playgroud)\n它MyCustomGLSurfaceView实现了一个摄像头,当用户适当地触摸屏幕时,该摄像头就会移动。
在渲染器中的回调结束时,onDrawFrame()我调用回调来告诉RelativeLayout相机已移动,并且它应该根据需要更新任何子视图的位置。
为了尝试同步两个层,我正在执行以下操作:
\nrenderMode = RENDERMODE_WHEN_DIRTY范围内MyCustomGLSurfaceViewMyCustomGLSurfaceView实现Choreographer.FrameCallback并在doFrame(frameTimeNanos: Long)方法调用中requestRender()RelativeLayout根据需要更新 it\xe2\x80\x99s 子视图的位置。MyCustomGLSurfaceView看起来 AndroidView对象直到下一帧才在屏幕上更新,而 则MyCustomGLSurfaceView立即更新。其理论是,通过侦听Choreographer回调,渲染MyCustomGLSurfaceView会在应用程序重新绘制标准 UI 元素的同时进行。
这似乎工作得相当好,但 Android 对象层中存在明显的卡顿View。另外,通过设置边距来定位 Android 层中的元素View会出现一些奇怪的行为(视图在离开屏幕时会被破坏,并且并不总是重新出现,有时甚至根本停止更新)。我尝试使用它们来定位它们translationX / translationY,但是两层之间的同步不太好。
有没有一个好的方法来实现这种同步?
\n我认为使用 a 可能比使用 a 更好,TextureView因为GLSurfaceViewaTextureView被合成到视图层次结构中而不是作为一个单独的表面,所以我认为也许同步会自然而然地消失。
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |