为了实现在Android视频全屏播放时隐藏底部的BottomNavigationBar,需要以下步骤:

  1. 创建一个全屏播放视频的Activity。
  2. 在Activity的布局文件中添加一个MediaPlayer控件和一个BottomNavigationBar。
  3. 设置Activity的主题为全屏模式。
  4. 当视频播放全屏时,隐藏BottomNavigationBar。
  5. 当视频退出全屏时,显示BottomNavigationBar。

下面是具体的实现步骤:

创建全屏播放视频的Activity

首先,创建一个名为FullScreenVideoActivity的Activity,并在其布局文件中添加一个VideoView控件和一个BottomNavigationBar

<RelativeLayout xmlns:android="
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <VideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <com.example.BottomNavigationBar
        android:id="@+id/bottomNavigationBar"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:layout_alignParentBottom="true" />

</RelativeLayout>

设置Activity主题为全屏模式

FullScreenVideoActivityonCreate方法中,使用requestWindowFeature(Window.FEATURE_NO_TITLE)getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)方法设置Activity的主题为全屏模式。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_full_screen_video);
    // ...
}

监听视频全屏状态

FullScreenVideoActivity中,我们需要监听视频的全屏状态。当视频全屏时,隐藏BottomNavigationBar;当视频退出全屏时,显示BottomNavigationBar

首先,在FullScreenVideoActivity中定义一个boolean型的变量isFullScreen,用于判断当前是否是全屏状态。

private boolean isFullScreen = false;

然后,在FullScreenVideoActivity中添加一个监听器,用于监听视频的全屏状态。

private MediaPlayer.OnVideoSizeChangedListener sizeChangeListener = new MediaPlayer.OnVideoSizeChangedListener() {
    @Override
    public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
        if (width > height) {
            // 视频全屏
            isFullScreen = true;
            hideBottomNavigationBar();
        } else {
            // 视频退出全屏
            isFullScreen = false;
            showBottomNavigationBar();
        }
    }
};

onCreate方法中,为VideoView设置视频尺寸变化的监听器。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // ...
    videoView.setOnVideoSizeChangedListener(sizeChangeListener);
}

隐藏和显示BottomNavigationBar

FullScreenVideoActivity中,我们需要定义两个方法:hideBottomNavigationBarshowBottomNavigationBar,用于隐藏和显示BottomNavigationBar

private void hideBottomNavigationBar() {
    bottomNavigationBar.setVisibility(View.GONE);
}

private void showBottomNavigationBar() {
    bottomNavigationBar.setVisibility(View.VISIBLE);
}

流程图

下面是以上步骤的流程图:

flowchart TD
    A[创建全屏播放视频的Activity] --> B[设置Activity主题为全屏模式]
    B --> C[监听视频全屏状态]
    C --> D[隐藏和显示BottomNavigationBar]

状态图

下面是FullScreenVideoActivity的状态图:

stateDiagram
    [*] --> VideoNotFullScreen
    VideoNotFullScreen --> VideoFullScreen : 视频全屏
    VideoFullScreen --> VideoNotFullScreen : 视频退出全屏

以上就是在Android视频全屏播放时隐藏底部BottomNavigationBar的实现步骤。通过监听视频的全屏状态,我们可以根据需要隐藏或显示底部的BottomNavigationBar。