Ответ 1
когда вы нажимаете элемент меню. вы должны начать новую деятельность. для этого действия вы должны установить атрибут темы в манифесте. установите это значение
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
thats it.
Я пытаюсь сделать этот 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"
thats it.
Нет необходимости в коде для воспроизведения видео в полноэкранном режиме
<?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>