2011-01-16 3 views
0

У меня есть класс кнопки, созданный из метода onSurfaceCreated в моем glSurfaceView; Он берет gl как один из его параметров, чтобы он мог правильно рисовать. У меня возникла проблема, связанная с классом overlay, которая выглядит как булавка в приложении Google Maps. Если я назову makeOverlay() в конструкторе моей кнопки, он отлично рисует, если я назову его где-нибудь еще, я получаю белый квадрат. Все они находятся на одной и той же линии рисования. Кто-нибудь знает, что им не хватает? Благодарю.проблем, связанных с Android

+0

Я узнал, что вы можете передать только gl из 3 методов переопределения, onSurfaceCreated, onSurfaceChanged и onDrawFrame; кроме того, что он больше не будет работать. Перефразируя мой вопрос, как я могу запустить новый объект, который будет выполнен правильно? – jfisk

ответ

0

Вероятно, контекст GL не является действующим вне этих методов.

Вы можете просто сделать абстрактное представление своего объекта и нарисовать его в методе onDrawFrame. Это то, что вы должны делать в любом случае.

0

Вы можете сохранить GL-контекст внутри статической переменной, чтобы иметь возможность доступа к нему из любого места вашего кода.

+1

Если вы вызываете его из нити gl, он, вероятно, не будет работать так, как предполагалось. – HaMMeReD