Динамическое изменение размера GLSurfaceView в Android - PullRequest
1 голос
/ 15 февраля 2012

Я использую видеоизображение, расширяющее GLSurfaceView, и я хочу, чтобы оно изменялось при изменении ориентации экрана. Как правило, чтобы установить вид в полноэкранном режиме, когда ориентация экрана является альбомной. У меня проблемы с изменением размера этого компонента, setLayoutParams не справляется с задачей, я также безуспешно попробовал метод surfaceChanged в GLSurfaceView. Я, наверное, что-то упускаю.

Заранее спасибо за ваши ответы.

1 Ответ

0 голосов
/ 15 марта 2012

Не зная больше, я думаю, что самым простым способом было бы использовать поведение Android по умолчанию, заключающееся в уничтожении и воссоздании вашей деятельности, содержащей GLSurfaceView при изменении ориентации. Это можно сделать, указав разные макеты с одинаковыми именами для книжной и альбомной ориентации и поместив их, например, в папки res/layout-port и res/layout-land.

Еще одна возможность, поскольку GLSurfaceView часто может содержать много состояний, которые вы, возможно, не захотите перестраивать при каждом изменении ориентации, заключается в использовании атрибута android:configChanges в вашем Activity указании orientation, а затем измените размер GLSurfaceView в методе onConfigurationChanged(Configuration) вашего Activity.

...