Просмотр Android-видео в полноэкранном режиме

Я пытаюсь сделать этот VideoView появляться в полноэкранном режиме:

public class ViewVideo extends Activity { private String filename; private static final int INSERT_ID = Menu.FIRST; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); System.gc(); Intent i = getIntent(); Bundle extras = i.getExtras(); filename = extras.getString("videofilename"); VideoView vv = new VideoView(getApplicationContext()); setContentView(vv); vv.setVideoPath(filename); vv.setMediaController(new MediaController(this)); vv.requestFocus(); vv.start(); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, INSERT_ID, 0,"FullScreen"); return true; } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { switch(item.getItemId()) { case INSERT_ID: createNote(); } return true; } private void createNote() { requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } } 

Видео воспроизводится с SD-карты. Единственное, когда я нажимаю кнопку полноэкранного меню, приложение «останавливается неожиданно».

Пожалуйста, помогите мне, как заставить видео работать в полноэкранном режиме? Заранее спасибо.

Когда вы нажимаете элемент меню. Вы должны начать новую активность. Для этого действия вы должны установить атрибут темы в манифесте. Установите это значение, которое

 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 

это оно.

Нет необходимости в коде для воспроизведения видео в полноэкранном режиме

Примените следующий формат макета к xml, содержащему видеообзор, и он обязательно воспроизведет видео в полноэкранном режиме. Как это работает моя 🙂 Надеюсь, это поможет

  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <VideoView android:id="@+id/myvideoview" android:layout_width="fill_parent" android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentBottom="true" android:layout_height="fill_parent"> </VideoView> </RelativeLayout> 

Возможно, это потому, что вам нужно добавить следующий код:

 requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

Перед setContentView(your_content_view) чтобы избавиться от строки заголовка приложения. Я знаю его очень поздний ответ, но кто-то может найти его полезным.

Из-за моего опыта вы можете использовать только Relative-Layout View для того, чтобы ваше видео растягивалось на портрете и пейзаже. Линейный вид макета может растягивать видео только на Пейзаж, вы можете попробовать два вида без написания кода и доказать свою теорию

Okey, Давайте попробуем вот так, это было подходящим для моего полного экрана.

  android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" 

Портретная макет

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:background="@android:color/black"> <VideoView android:id="@+id/video_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" /> </FrameLayout> 

План ландшафта

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/black"> <VideoView android:id="@+id/video_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center"/> </FrameLayout>