Как сделать SurfaceView всегда горизонтальным?

Я использую SurfaceView для рисования некоторых вещей с помощью холста. Проблема в том, что я хочу по умолчанию показывать все горизонтально и сохранять его таким, независимо от положения устройства. Я не использую XML-файл макета для отображения SurfaceView; вместо этого у меня просто есть класс, который расширяет SurfaceView, и я делаю setContentView(new Panel(this));, чтобы показать его.

Спасибо за вашу помощь.


person Cristian    schedule 01.05.2010    source источник


Ответы (1)


Ваша проблема в том, что активность будет вращаться в зависимости от положения устройства или клавиатуры (в зависимости от того, какое это устройство). Если вы хотите, чтобы действие игнорировало ротацию, добавьте android:screenOrientation="portrait" или android:screenOrientation="landscape" в свой манифест для этого действия. Вы также можете добавить android:configChanges="keyboardHidden|orientation" к активности, чтобы Android не утруждал себя уничтожением и воссозданием активности, когда пользователь меняет ориентацию.

См. здесь и здесь для примеров проектов, связанных с этим.

person CommonsWare    schedule 01.05.2010