Relatives OpenGL- und Android-Layout

Ich habe bereits versucht, diese Frage zu stellenRelative Layout-Codierung, aber dieser erste Versuch war nicht sehr klar.

Ich möchte ein relatives Layout erstellenGLSurfaceView aber das layout muss so aussehen:

<RelativeLayout
        android:id="@+id/View1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@raw/gi"
        android:orientation="vertical" >

        <ImageView
                android:id="@+id/imageView1"
                android:layout_width="64px"
                android:layout_height="64px"
                android:layout_alignParentLeft="true"
                android:layout_alignParentTop="true"
                android:src="@drawable/b1" />

        <ImageView
                android:id="@+id/imageView2"
                android:layout_width="64px"
                android:layout_height="64px"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/imageView1"
                android:src="@drawable/b2" />

        <ImageView
                android:id="@+id/imageView3"
                android:layout_width="64px"
                android:layout_height="64px"
                android:layout_alignParentTop="true"
                android:layout_toRightOf="@+id/imageView2"
                android:src="@drawable/b3" />
</RelativeLayout>

Wenn ich es jedoch so codiere, wie es in den Antworten steht, funktioniert es, aber die Bilder werden immer noch übereinander gelegt. (Ich habe die getId-Funktionen zum Addieren von Regeln verwendet.)

Also denke ich daran, die gesamte XML-Datei hinzuzufügen und so zu arbeiten, aber jedes Mal, wenn ich eine XML-Datei lade, stoppt die App. Hier ist der Großteil des Codes:

public class HelloWorld extends Activity {
...
protected void onCreate(Bundle savedInstanceState) {
    ....
    opengl = new GLSurfaceView(getApplication());
    opengl.setEGLConfigChooser(new GLSurfaceView.EGLConfigChooser() {
        public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display) {
              int[] attributes = new int[] { EGL10.EGL_DEPTH_SIZE, 16, EGL10.EGL_NONE};
              EGLConfig[] configs = new EGLConfig[1];
              int[] result = new int[1];
              egl.eglChooseConfig(display, attributes, configs, 1, result);
              return configs[0];
        }
    });

    renderer = new MyRenderer();
    mGLView.setRenderer(renderer);
    setContentView(opengl);
    addContentView(findViewById(R.id.View1), new RelativeLayout.LayoutParams(
              RelativeLayout.LayoutParams.FILL_PARENT,
              RelativeLayout.LayoutParams.FILL_PARENT));

Denken Sie daran, dass ohne den letzten Anruf anaddContentView Die App funktioniert.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage