2016-08-18 4 views
0

Я делаю приложение для видеопроигрывателя и хочу добавить полноэкранную функцию. В настоящее время я использую макет, такой как youtube, и мое видео воспроизводится в videoView, и все в порядке.Изменение ориентации представления и создание полного экрана

Я хочу переключить ориентацию этого videoView и растянуть его, чтобы сделать его полноэкранным.

Вот что я пробовал;

((ViewManager)VideoView.getParent()).removeView(VideoView); 
frameLayout.addView(VideoView); 
  • Я обмотал макет с форматированием кадров
  • я снял «VideoView» и добавить его в рамки макета

Я berely достиг результата, но в этом случае видео остановка. Это похоже на то, что все VideoView стало бесполезным. Когда я его удаляю, он пытается отправить сообщение обработчику по мертвой нити и перестает работать.

Мой вопрос:

Есть ли способ изменить родительский элемент представления без его удаления? или Есть ли лучший вариант, чтобы сделать этот вид на весь экран?

Примечание: Тип этого VideoView является Exo Media Video View, я использовал библиотеку ниже https://github.com/brianwernick/ExoMedia

+1

[это может быть полезно] (HTTP: // StackOverflow. com/questions/18268218/change-screen-orientation-programatically-use-a-button), вы также должны заинтересоваться изменением темы (помимо ориентации) [Theme.NotTitleBar.Fullscreen] (http://stackoverflow.com/questions/10086371/androidtheme-Andr oidstyle-тема-notitlebar-полноэкранная-работа-на-приложения). проверьте также совместимость приложений для более «гладких» решений », возможно, только на« более новой части »доли рынка Android версии – snachmsm

+0

@snachmsm. Одна из проблем уходит. Теперь мне нужно заботиться о том, чтобы сделать полноэкранную часть просмотра. –

+0

см. edit :) просто googlin ... [как установить-screen-size-to-full-screen-at-runtime-in-android] (http://stackoverflow.com/questions/18268218/how-to- set-screen-size-to-full-screen-at-runtime-in-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 
    }