Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Samsung Galaxy S8 full screen mode

Latest Samsung's smartphone has interesting feature called full screen (or in marketing terms infinity display). In this mode app covers also part of display where home/back buttons are. Usual apps don't cover this area, leaving it black. But Samsung's native ones cover this area.

Question: how to achieve this effect? I mean what kind of manifest declaration or programmatic call (possibly Samsung's legacy API) should I use?

like image 548
Barmaley Avatar asked Apr 29 '17 10:04

Barmaley


People also ask

Which screen mode is best for S8?

The AMOLED Cinema screen mode is an accurate match to the DCI-P3 Standard Gamut that is used for the new 4K UHD TV content. The Basic screen mode is an accurate match to the sRGB / Rec.

What is full screen mode?

Full screen mode allows you to watch videos that take up your entire screen. Android ComputeriPhone & iPad. More.


2 Answers

To enable new Samsung Galaxy S8 and LG G6 full screen support add to the AndroidManifest.xml under the <application> element:

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

Where value of 2.1 is aspect ratio 18.5:9 (By default your App defaults to maximum ratio for 16:9 - 1.86). More info in: Android Blog.

Alternatively, you can set the following attribute for Application or Activity:

android:resizeableActivity="true"

Because the documentations states (link):

You do not need to set a maximum aspect ratio if an activity's android:resizeableActivity attribute is set to true. If your app targets API level 24 or higher, this attribute defaults to true.

like image 135
Maris B. Avatar answered Oct 21 '22 19:10

Maris B.


to get full-screen you must overide onWindowFocusChanged method and create decorView object and add System_UI flags into it..

@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);
        }
    }
like image 1
Abubakar Avatar answered Oct 21 '22 19:10

Abubakar