我目前正在开发一款游戏而且我不愿意半途而废,发现我正在做的事情导致错误/杀死性能。这就是我想要设置它的方式。
首先想让LinearLayout包含一个包含HUD的LinearLayout,然后是一个GLSurfaceView。但是我可能会在某些时候“暂停”游戏视图并切换到包含库存或装备等的不同线性布局。
我认为这种方式最好,因为我可以使用Android附带的所有优秀组件,而不是使用OpenGL创建自己的组件。但是我担心混合两种类型的视图可能会有一些问题。任何见解或建议将不胜感激。感谢。
答案 0 :(得分:18)
我一直在使用FrameLayout和GLSurfaceView作为第一个元素。即在堆栈的底部,其他视图/视图组分层在其顶部。我建议只是暂停游戏循环并在其顶部放置一些不透明的视图来隐藏它而不是交换视图进出或其他:
<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>