Перекомпоновка макета Activity для воспроизведения видео в полноэкранном режиме при повороте экрана

В мероприятии я встроил виджет Video (VideoView или MediaPlayer, связанный с SurfaceView), размер которого следует изменять при повороте экрана. Это действие используется в качестве содержимого в TabHost.

Мой текущий подход

Чтобы управлять поворотом экрана, я предоставил два макета: один для портретной, а другой - для альбомной ориентации (помещены в папки ./res/layout и ./res/layout-land).

Проблема этого подхода заключается в том, что для каждого поворота создается новое действие, поэтому я не использую один и тот же MediaPlayer (или VideoView) => Я запускаю видео с начала каждый раз, когда поворачиваю экран. Поскольку видео передается из Интернета, невозможно сохранить позицию в видео для поиска этой позиции при перезапуске видео в другом действии.

Что я хочу сделать

Мне нужно иметь возможность переводить / масштабировать / скрывать виды внутри Activity при повороте экрана. Перевод / масштабирование необходимо для поддержания организации макета, чтобы макет адаптировался к разным размерам экрана.

Desired animation/layout

Мои вопросы

  • Как перевести / переместить представления в верхнее левое положение экрана?
  • Как скрыть / перевести вид за пределами экрана, чтобы заставить его исчезнуть?
  • Как сделать масштабировать / изменять размер представления, чтобы настроить его размер в соответствии с доступным пространством вокруг него?

  • Какой интерфейс, обратный вызов мне нужно реализовать, чтобы получать уведомления о повороте экрана для запуска этих преобразований?

8
задан Macarse 29 August 2011 в 14:03
поделиться