2016-09-22 2 views
-4

ビデオを再生していてフルスクリーンのアイコンが表示されています。これをクリックするとデバイスの向きが強制的に横向きに回転します。しかし、画面を回転すると、それはpotraitモードに戻っていません.Youtube/Hotstarアプリのように、ボタンのクリックとデバイスの向きの変更の両方で回転の変化が起こるような、ビデオの回転を起こしたいと思います。ビデオの再生中に画面が回転する

findViewById(R.id.landscape).setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 
    } 
} 
}); 

public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    setAutoOrientationEnabled(this,false); 
} 

質問:
私の単純な要件は、強制的setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENS OR_LANDSCAPE)を使用して活性を回転させた後です。 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENS OR_POTRAIT)を呼び出さずにデバイスを回転させると、再びpotraitモードに戻ることができます。あなたはこのラインを使用して変更することができ、ボタンの

+0

haveビデオを実行しているアクティビティのマニフェストに 'configChanges'を追加しましたか? – Mithun

+0

はい私のマニフェストファイルには "android:configChanges =" orientation | screenSize | keyboardHidden "" –

+0

コードを使わずに問題が投稿されないようにしてください –

答えて

0

Button buttonSetPortrait = (Button)findViewById(R.id.setPortrait); 
Button buttonSetLandscape = (Button)findViewById(R.id.setLandscape); 

buttonSetPortrait.setOnClickListener(new Button.OnClickListener(){ 

    @Override 
    public void onClick(View arg0) { 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    } 

}); 

buttonSetLandscape.setOnClickListener(new Button.OnClickListener(){ 

    @Override 
    public void onClick(View arg0) { 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } 

}); 

回答から:https://stackoverflow.com/a/18268304
デバイスの向きは( オーバーライド 公共ボイドはonConfigurationChanged変化したときに動画の向きを設定し、次のコードを使用します構成newConfig){ super.onConfigurationChanged(newConfig);

// Checks the orientation of the screen 
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show(); 
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
     Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show(); 
    } 

この答えを見てみましょう:https://stackoverflow.com/a/5726776

をするために、自動を有効または無効にこの答えを見てみましょう回し:https://stackoverflow.com/a/4909079/4585226

import android.provider.Settings; 
public static void setAutoOrientationEnabled(Context context, boolean enabled) 
{ 
     Settings.System.putInt(context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, enabled ? 1 : 0); 
} 

AndroidManifestへのアクセス許可を追加します。 xml

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
+0

あなたのクイックreply.ForボタンのためのThanx @ 476rickは私がまさにあなたが上で述べたことをしている強制的に回転し、locking.Now一度その回転をロック解除する方法を回転? –

+0

私がこのような何かをしない限り、私のunderstaingとして、このsetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);ロックされた回転はロックされません –

+0

しかし、正確にどこで強制的な回転の後にそのコードを置く必要がありますか? –

関連する問題