嗨,我在播放方向更改时遇到了这个问题。在纵向上,我的布局目录中有以下 XML。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<!-- Player Header -->
<LinearLayout
android:id="@+id/player_header_bg"
android:layout_width="fill_parent"
android:layout_height="60dip"
android:background="@layout/bg_player_header"
android:layout_alignParentTop="true"
android:paddingLeft="5dp"
android:paddingRight="5dp">
<!-- Song Title -->
<TextView
android:id="@+id/videoTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="#04b3d2"
android:textSize="16sp"
android:paddingLeft="10dp"
android:textStyle="bold"
android:text="@string/song_def_title"
android:layout_marginTop="10dp"/>
<!-- Full Screen button -->
<ImageButton
android:id="@+id/btnFullScreen"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/ic_action_refresh"
android:background="@null" />
<!-- Playlist button -->
<ImageButton
android:id="@+id/btnPlaylist"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/btn_playlist"
android:background="@null"/>
</LinearLayout>
<VideoView
android:id="@+id/surface_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/player_header_bg" >
</VideoView>
</RelativeLayout>
当方向更改为横向时,我在 layout-land 文件夹中有这个 XML,它具有相同的 XML 文件名但具有以下 XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<VideoView
android:id="@+id/surface_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" >
</VideoView>
</RelativeLayout>
方向更改没有任何问题,但我想在横向模式下使用我的操作栏和通知栏。并让它以纵向模式出现。
我试图手动覆盖 onConfigurationChanged 方法,但效果不佳。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
ActionBar actionBar = getActionBar();
actionBar.hide();
WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
getWindow().setAttributes(attrs);
// setContentView(R.layout.player_video_fs);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
ActionBar actionBar = getActionBar();
actionBar.show();
WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.flags |= WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
getWindow().setAttributes(attrs);
// setContentView(R.layout.player_video);
}
}
如果我要执行上述操作,当我更改为横向时,它将删除操作栏和通知栏,但是当我更改回纵向时,操作栏会变得有些奇怪。看看它是如何被切断的?操作栏
并且更改为横向,似乎它会黑屏而不是继续播放视频。
我尝试了其他一些方法,但仍然无法解决。任何想法?