GlSurfaceView Renderer не вызывается - PullRequest
0 голосов
/ 14 декабря 2011

Я изучаю OpenGL на Android. Я написал приложение, в котором GlSurfaceView объявлен в макете XML (фрагмент ...)

  <FrameLayout
  android:id="@+id/framelay"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
     <com.nelsondev.myha3ogl.M3View
     android:id="@+id/m3SurfView"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"/>
  </FrameLayout> 

... и в его конструкторе устанавливается средство визуализации:

    public M3View(Context context, AttributeSet attrs) {
        super(context, attrs);
        renderer = new M3Renderer(context);
        setRenderer(renderer);
   }

Когда действие получает onResume / onPause , оно правильно вызывает методы GlSurfaceView. Но средство рендеринга никогда не запускается! Точки останова в onSurfaceCreated () и других методах рендерера никогда не удаляются, и ничего не отображается. Как мне понять, что здесь происходит?

1 Ответ

3 голосов
/ 19 декабря 2011

(Этот ответ исходит из вашего другого вопроса: Попытка запустить средство визуализации из GLSurfaceView, объявленного в макете )

Вы не указали свою ориентацию LinearLayout, поэтому она установлена ​​на horizontal по умолчанию.Это означает, что ваш GLSurfaceView находится за пределами экрана (поскольку вы устанавливаете ширину кнопки на fill_parent).

Просто добавьте следующий атрибут в свой LinearLayout:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...