2011-11-14 15 views
8

Attualmente sto lavorando a un gioco e odio trovarmi a metà strada e scoprire che quello che sto facendo causa errori/uccide le prestazioni. È così che sto pensando di metterlo su.Miscelazione di viste Android e GLSurfaceView

Layout of Views

Prima vogliono avere una LinearLayout con un LinearLayout contenente un HUD, e poi un GLSurfaceView. Tuttavia, in certi punti posso "mettere in pausa" la vista di gioco e passare a un layout lineare diverso contenente un inventario o equipaggiamenti, ecc.

Penso che in questo modo sarebbe meglio perché posso utilizzare tutti i grandi componenti che Android viene con piuttosto che fare il mio con OpenGL. Tuttavia sono preoccupato che la miscelazione dei due tipi di vista possa avere qualche problema. Qualsiasi intuizione o suggerimento sarebbe molto apprezzato. Grazie.

risposta

18

Ho usato un FrameLayout con GLSurfaceView come primo elemento. Cioè in fondo alla pila, con altre viste/gruppi di vista sovrapposti sopra la parte superiore. Mi raccomando appena pausa il gioco-loop e mettendo un po 'di vista opaco sopra la parte superiore di esso per nasconderlo, piuttosto che scambiare opinioni in entrata e in uscita o qualsiasi altra cosa:

<FrameLayout 
    android:id="@+id/graphics_frameLayout1" 
    android:layout_width="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent"> 
    <android.opengl.GLSurfaceView 
     android:id="@+id/graphics_glsurfaceview1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
    </android.opengl.GLSurfaceView> 
    <LinearLayout 
     android:layout_height="fill_parent" 
     android:id="@+id/inventory" 
     android:gravity="center" 
     android:layout_width="fill_parent" 
     android:orientation="vertical" 
     android:visibility="gone"> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_height="fill_parent" 
     android:id="@+id/HUD" 
     android:gravity="center" 
     android:layout_width="fill_parent" 
     android:orientation="vertical"> 
    </LinearLayout> 
</FrameLayout> 

Android Framelayout for games. Check out ma ms paint skillz

+2

grande film! ;) –

Problemi correlati