web-dev-qa-db-ja.com

Samsung Galaxy S8フルスクリーンモード

最新のサムスンのスマートフォンには、フルスクリーン(またはマーケティング用語では無限表示)と呼ばれる興味深い機能があります。このモードでは、アプリはホーム/戻るボタンがあるディスプレイの一部もカバーします。通常のアプリはこの領域をカバーせず、黒のままにします。しかし、サムスンのネイティブのものはこの領域をカバーしています。

質問:この効果を達成する方法は?どのようなマニフェスト宣言またはプログラム呼び出し(おそらくSamsungのレガシーAPI)を使用する必要がありますか?

19
barmaley

新しいSamsung Galaxy S8を有効にしてLG G6フルスクリーンサポートを追加するには、AndroidManifest.xmlの<application>要素:

<meta-data Android:name="Android.max_aspect" Android:value="2.1" />

2.1の値はアスペクト比18.5:9です(デフォルトでは、アプリはデフォルトで16:9-1.86の最大比になります)。詳細: Androidブログ

または、アプリケーションまたはアクティビティに次の属性を設定できます。

Android:resizeableActivity="true"

ドキュメンテーションには( link )と記載されているため:

アクティビティのAndroid:resizeableActivity属性がtrueに設定されている場合、最大アスペクト比を設定する必要はありません。アプリがAPIレベル24以上をターゲットにしている場合、この属性のデフォルトはtrueです。

32
Maris B.

フルスクリーンを取得するには、onWindowFocusChangedメソッドをオーバーライドし、decorViewオブジェクトを作成し、それにSystem_UIフラグを追加する必要があります。

@Override
    public  void onWindowFocusChanged(boolean  hasFocus){
        super.onWindowFocusChanged(hasFocus);
        View decorView = getWindow().getDecorView();
        if(hasFocus){

        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    |View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY  // this flag do=Semi-transparent bars temporarily appear and then hide again
                    |View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN  // Make Content Appear Behind the status  Bar
                    |View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION  // it Make Content Appear Behind the Navigation Bar
                    |View.SYSTEM_UI_FLAG_FULLSCREEN  // hide status bar
                    |View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
        }
    }
1
Abubakar