2016-08-18 44 views
0

我正在做一个视频播放器应用程序,并希望添加全屏功能。目前我使用的是YouTube的布局,我的视频在videoView中播放,完全没问题。更改视图的方向并使其全屏

我想切换此videoView的方向并将其拉伸至全屏。

在这里,我试过;

((ViewManager)VideoView.getParent()).removeView(VideoView); 
frameLayout.addView(VideoView); 
  • 我都包裹着我的布局,框架布局
  • 我打消了我的“VideoView”并将其添加到框架布局

我berely取得的结果,但在这种情况下视频这就像所有的VideoView变得没用了,当我删除它时,它试图发送消息给一个处理程序在一个死的线程上并停止工作

我的问题是,

有什么方法可以在不删除它的情况下更改视图的父级? 或是否有更好的选择,使此视图全屏?

注:此类型的VideoView是外媒体视频观看,我用下面https://github.com/brianwernick/ExoMedia

+1

[这可能是有帮助的(HTTP://计算器。 com/questions/18268218/change-screen-orientation-programatically-using-a-button)你应该也想改变主题(除了方向)[Theme.NotTitleBar.Fullscreen](http://stackoverflow.com/questions/10086371/androidtheme-的Andr ?? oidstyle主题 - notitlebar全屏-工程上的应用程序)。也检查出应用程序compat更“光滑”的解决方案“可能porbably只能在Android版本市场份额”更新的部分“ – snachmsm

+0

@snachmsm问题消失。现在我需要关心制作视图全屏部分 –

+0

看到编辑:)只是googlin ... [如何设置屏幕大小的全屏幕在运行时在Android](http://stackoverflow.com/questions/18268218/how-to-设置屏幕大小到全屏幕在运行时在Android) – snachmsm

回答

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 
    }