Как поместить кнопки на GLSurfaceView?

Рейтинг: 0Ответов: 1Опубликовано: 29.09.2014

Здравствуйте! Изучаю Android, пишу простую программку... Меня окончательно изматал GLSurfaceView, никоим образом не хочет держать на себе кнопки. Все чего я достиг:

        // Init GL Surf:
        view = new MySurfaceView(fA);
        fA.setContentView(view);// Тольо OGL
        //setContentView(R.layout.activity_fullscreen);// Только кнопки

        // Add control buttons----------------------------------------------------------
        ll = new LinearLayout(fA);
        ll.setGravity(Gravity.CENTER | Gravity.BOTTOM);
        fA.addContentView(ll, new    ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));

        Button bL = new Button(fA);
        bL.setText("Left");
        bL.setHeight(50); bL.setWidth(100);
        bL.setOnClickListener(this);
        ll.addView(bL);

Такая проблема, этих кнопок нет в графическом конструкторе и в XML они никак не зарегистрированы. Чего я пытаюсь достичь: Хочу чтобы кнопки держались на GLSurfaceView и были видны в графич. редакторе и xml файле. Хламокода было много, думаю мусор не нужно сюда тащить, обьясню на словах: Брал в конструкторе CustomView, указывал на класс A, который extends от GLSurfaceView(в классе А конструктор имеет super(...)), и играфический конструктор ругается на код и программа вылетает в эмуляторе... Что не так? Как можно приделать к GLSurfaceView кнопку???

Ответы

▲ 2Принят

Если есть такая возможность, создайте GLSurfaceView в конструкторе(activity_main.xml) из SurfaceView путем редактирования его кода следующим образом:

<SurfaceView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/surfaceView"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

Измените на это:

<android.opengl.GLSurfaceView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/glSurfaceView"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true" />

После данных преобразований вы сможете добавлять кнопки и прочие эллементы поверх GlSurfaceView и редактировать его привычным образом.

Пример использования