单击按钮时如何使 VideoView 全屏显示?

Posted

技术标签:

【中文标题】单击按钮时如何使 VideoView 全屏显示?【英文标题】:How to make VideoView full screen when i click a button? 【发布时间】:2021-08-01 07:21:04 【问题描述】:

我有一个 VideoView 用于从 url 加载视频。我希望它有一个像 YouTube 一样的状态栏。我使用了 MediaController 但它只有倒带、前进、暂停和恢复。我希望它有一个按钮,单击它可以全屏并退出全屏。 任何我感激的帮助。

【问题讨论】:

【参考方案1】:

为您的视频播放器添加全屏按钮: 1-设置清单

<activity android:name=".YourPlayerActivity"
  android:configChanges="keyboardHidden|orientation|screenSize">

** 这将防止播放器在切换到全屏时重置

2-step 2:在你的 xml 设计中添加一个新的控制器 ** 全屏图像视图

3- 初始化全屏按钮

boolean fullscreen = false;
fullscreenButton = playerView.findViewById(R.id.exo_fullscreen_icon);
fullscreenButton.setOnClickListener(new View.OnClickListener() 
    @Override
    public void onClick(View view) 
        if(fullscreen) 
            fullscreenButton.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, R.drawable.ic_fullscreen_open));
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
            if(getSupportActionBar() != null)
                getSupportActionBar().show();
            
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) playerView.getLayoutParams();
            params.width = params.MATCH_PARENT;
            params.height = (int) ( 200 * getApplicationContext().getResources().getDisplayMetrics().density);
            playerView.setLayoutParams(params);
            fullscreen = false;
        else
            fullscreenButton.setImageDrawable(ContextCompat.getDrawable(MainActivity.this, R.drawable.ic_fullscreen_close));
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN
                                                            |View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
                                                            |View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
            if(getSupportActionBar() != null)
                getSupportActionBar().hide();
            
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
            RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) playerView.getLayoutParams();
            params.width = params.MATCH_PARENT;
            params.height = params.MATCH_PARENT;
            playerView.setLayoutParams(params);
            fullscreen = true;
        
    
);

【讨论】:

嗨,您能在第 2 步中解释更多吗?我不知道如何将 ImageView 添加到 MediaController。 好的,你能把你的活动 XML 布局发给我吗

以上是关于单击按钮时如何使 VideoView 全屏显示?的主要内容,如果未能解决你的问题,请参考以下文章

当视频视图处于全屏状态时,RecyclerView 被重新创建

单击按钮时android videoview全屏

全屏视频查看按钮

Videoview 在框架布局内没有全屏显示

在videoview上添加按钮全屏

使用旋转和按钮处理 VideoView 全屏和纵向