3

내 앱에서 동영상을 재생할 때 Youtube 앱이 수행하는 작업을 복제하려고합니다.Youtube 앱과 같은 Android VideoView 오리엔테이션

인물 모드 : 화면의 40 % 만 사용하고 나머지는 비디오에 대한 정보로 표시합니다.

가로 모드 : 비디오와 창을 전체 화면 모드로 표시합니다.

스택 오버플로 및이 주제에 관한 다른 포럼에서 많은 스레드를 보았지만 그 중 아무 것도 나와 함께 작동하지 않는 것 같습니다. 그리고 난 다음 코드로의 onConfigurationChanged 이벤트 오버라이드 (override) 한 configChanges = "| | 오리엔테이션 화면 크기 keyboardHidden":이 전체 화면에 응용 프로그램을 넣어하지 않습니다

@Override 
public void onConfigurationChanged(Configuration config) 
{ 
    super.onConfigurationChanged(config); 

    if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) 
    { 
     // requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    } 
    else 
    { 
     getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 

    } 
} 

을하고 있다면 현재 내가 안드로이드 내 videoplayeractivity이 "requestFeature()가 내용을 추가하기 전에 호출되어야하기 때문에"충돌 할 요청 윈도우의 주석 처리를 제거하십시오. 나중에 나는의 onConfigurationChanged 이벤트를 제거하려고했습니다과에서 onCreate 이벤트에 나는 시도했다 :

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) 
    { 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_video); 

을하지만 com.android.internal.policy.impl.PhoneWindow $ PanelFeatureState.onRestoreInstanceState (PhoneWindow에서 NullPointerException이와 충돌합니다. java : 3527) 내가 초상화에서 활동을 시작한 다음 풍경으로 넘어 간다면. 어떤 제안?

답변

0

는 전체 화면에 넣어 :

video_layout.xml :

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<VideoView 
    android:id="@+id/video" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" /> 

활동 :

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 

    @Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 

그리고 YouTube 앱과 같은 방향 변경을 지원하기 위해 : Toggling fullscreen & orientation like YouTube