Как я узнаю, когда GLSurfaceView полностью инициализируется из Activity? - PullRequest
0 голосов
/ 11 февраля 2010

У меня есть активность, которая содержит несколько просмотров. Одним из которых является GLSurfaceView. Этот GLSurfaceView отображает красивые 3D-эффекты на основе того, что выбрано в других видах моей деятельности (ListViews, EditTexts и т. Д.). У меня проблема в том, что я не знаю, когда мой GLSurfaceView был полностью инициализирован из Activity.

Я начал с простой попытки передать мои графические данные в мой GLSurfaceView в методе onCreate () моей деятельности вскоре после метода setContentView (). Это работало нормально на эмуляторе, но на некоторых устройствах это не удается с исключениями нулевого указателя при попытке получить доступ к объектам, которые еще даже не были созданы. Я предположил, что это потому, что мой взгляд еще не был раздут, и, возможно, на мои устройства накачка просмотров займет больше времени.

Я разбросал некоторые журналы, чтобы увидеть порядок вещей и обнаружил, что метод onSurfaceCreated моего GLSurfaceView вызывается задолго после метода onFinishInflate в GLSurfaceView.

Так что теперь я ищу хороший способ определить в своей Деятельности, когда был вызван метод onSurfaceCreated моего GLSurfaceView, чтобы я мог безопасно сказать моему GLSurfaceView, что рисовать.

1 Ответ

0 голосов
/ 12 февраля 2010

Подкласс GLSurfaceView ("Чтобы обработать событие, вы, как правило, будете создавать подкласс GLSurfaceView и переопределять соответствующий метод, так же как и в любом другом представлении"). Вы также можете зарегистрировать SurfaceHolder.Callback в Surf enter code here aceHolder - который работает с обычным SurfaceViews, чтобы знать, когда были созданы их поверхности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...