【问题标题】:Android, opengl, move glsurfaceviewAndroid、opengl、移动glsurfaceview
【发布时间】:2012-07-04 11:10:12
【问题描述】:
我在 xml 文件中创建了glsurfaceview,我想在按下按钮时更改此glsurfaceView 的 X、Y。
我有 onSurfaceChanged() 方法并且有 x,y 变量。
我可以将此方法称为 chane glsurfaceview 位置吗?
如果可以,我该怎么做,或者如何改变位置?
【问题讨论】:
标签:
android
opengl-es
glsurfaceview
【解决方案1】:
我有 onSurfaceChanged() 方法并且有 x,y 变量。我可以吗
调用这个方法来获取 glsurfaceview 位置?
不,你不能,因为onSurfaceChanged (GL10 gl, int width, int height) 是一个事件。当您的表面尺寸已经改变时,它由 OpenGL ES 子系统调用。因此,当您的表面大小已经改变时,它用于覆盖和执行某些典型操作 (as detailed here)。
由于GLSurfaceView 是SurfaceView 的后代并且是View 层次结构的一部分,您可以使用通常的定位方法(例如setX())来设置它的位置(但是不要忘记 关于您应在 Android 应用程序中确保的屏幕和密度独立性)。
附带说明:我不知道您的应用程序架构和详细信息,但是当需要重新定位 GLSurfaceView 时,通常会有相同问题的等效解决方案/解决方法' t 需要重新定位。