Uso de la clase GLSurfaceView con diseños xml para Android

Quiero hacer uso de los diseños xml android. He puesto un glSurfaceView en un diseño de marco para utilizar en conjunción con un diseño lineal como …

<FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"> <android.opengl.GLSurfaceView android:id="@+id/surfaceviewclass" android:layout_width="match_parent" android:layout_height="match_parent"/> </FrameLayout> <LinearLayout android:id="@+id/gamecontrolslayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="5" android:background="@drawable/backdrop"> //some layout stuff </LinearLayout> <LinearLayout> 

A continuación, llamar a mi diseño como así

 setContentView(R.layout.main); GLSurfaceView glSurfaceView = (GLSurfaceView)findViewById(R.id.surfaceviewclass); 

En onCreate ();

¿Cómo puedo llamar a mi glSurfaceView para que pueda hacer uso de los diseños xml como este y también hacer referencia a mi propia clase GLSurfaceView (a continuación es el código que hace referencia a mi propia clase GLSurfaceView) …

 glSurfaceView = new MyGLSurfaceView(this); setContentView(glSurfaceView); 

¿Hay alguna manera de combinar estos dos? Quiero hacer esto porque tengo una carga de cosas que suceden en mi clase glSurfaceView como carga de archivos y eventos de toque. Y sólo he pensado en implementar este nuevo diseño

Sólo haga referencia a su propia clase (con nombre de paquete completo) en el xml, de la misma manera que referencia android.opengl.GLSurfaceView. Asegúrese de que su subclase implementa el constructor adecuado y pasa los atributos y el contexto al padre:

 public MyGLSurfaceView(Context context, AttributeSet attrs) { super(context, attrs); 

Entonces usted puede buscarlo usando findViewById:

 MySurfaceView glSurfaceView = (MySurfaceView)findViewById(R.id.surfaceviewclass); 

Eso debería hacer el truco.

Si todo corect, como usted escribe en el xml-layout, el camino completo a la Glsurfaceview-class: (and classname)

Sólo funciona si la clase GLSurfaceView, escrita en un archivo propio. En este archivo para shure, los construcktors necesitan ser escritos correctamente.

He leído sobre, 1 constructor para xml-refer, y uno para la comunicación entre clases. Constructor para xml-refer, y uno para la comunicación entre clases, se puede encontrar, si se escribe correctamente, dentro de GLSurfaceView. GLSurfaceView, es donde se establece el procesador, establecerlo en el constructor xml, debe ser la única manera, funciona bien. (Mostrado en la columna 1)

Xml-constructor:

Public MyGLSurfaceView (Contexto contextual, AttributeSet attrs) {super (context, attrs); SetEGLContextClientVersion (2);
Renderer = new Renderer (contexto); SetRenderer (renderizador);

Si algunos de estos pueblos, que no pueden obtener trabajo de SurfaceView, en xml-layout mineral, que compran este libro de Apress – Beginning 3D-Game-Development. No estar enojado se lastimó usted mismo. En la página 44-45 se escribe, en un archivo. Escribir GLSurfaceView, como en mi respuesta, en el propio archivo. Renderer es un archivo propio, donde: onSurfaceCreated, onSurfaceChanged, onDrawFrame .. se puede encontrar Y The MainActivity

  • ¿Se descarta mal el rendimiento del programa en OpenGL?
  • Juego de Android, lienzo o opengl?
  • Zero-copia de procesamiento de la cámara y la prestación de tuberías en Android
  • Android TextureView sólo dibuja cuando OnSurfaceTextureUpdated se llama
  • ¿Cómo usar MediaMuxer / MediaCodec InputSurface con GLSurfaceView?
  • Android 2D-juego, la mejor opción para los gráficos?
  • ¿Qué versiones de GLSL puedo usar en OpenGL ES 2.0?
  • Uso de FBO para grabar la pantalla en Android
  • AndroidGameView + GC_MINOR
  • Matriz int a la textura opengl en android
  • Android: Lienzo vs OpenGL
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.