更改视图的方向并使其全屏显示

时间:2016-08-18 16:00:41

标签: android android-layout android-fullscreen

我正在制作视频播放器应用程序,并希望添加全屏功能。目前我正在使用像youtube这样的布局,我的视频正在videoView播放,而且完全没问题。

我想切换此videoView的方向并将其拉伸以使其全屏显示。

这是我尝试过的;

((ViewManager)VideoView.getParent()).removeView(VideoView);
frameLayout.addView(VideoView); 
  • 我用Frame Layout
  • 包裹了我的布局
  • 我删除了我的' VideoView"并将其添加到框架布局

我完全实现了结果但在这种情况下视频正在停止。就像所有VideoView变得无用一样。当我删除它时,它会尝试在死线程上向处理程序发送消息并停止工作。

我的问题是,

有没有办法在不删除视图的情况下更改视图的父级? 或者有更好的选择让这个视图全屏显示?

注意:此VideoView的类型是Exo Media Video View,我使用了https://github.com/brianwernick/ExoMedia下面的库

1 个答案:

答案 0 :(得分:1)

在考虑之后我找到了一个有效的解决方案。

  • 将所有其他观点设为GONE
  • 隐藏状态栏

基本上我已经写了这个功能结构

    private void goFullScreen() {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        makeAllGone();
    }

    private void outFullScreen(){
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        makeAllVisible();
    }

    private void makeAllGone(){
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }

        toolbar.setVisibility(View.GONE);
        // make visibility gone for the rest of the views

    }

    private void makeAllVisible(){
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }

        toolbar.setVisibility(View.VISIBLE);
        // make visibility visible for the rest of the view
    }