19

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?

Barmaley
  • 16,638
  • 18
  • 73
  • 146
  • Immersive fullscreen. Hides buttons and navigationbar on most systems I have encountered. If the S8 is different in that, I don't know what you would do – Zoe Apr 29 '17 at 10:36

3 Answers3

35

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.

Maris B.
  • 2,333
  • 3
  • 21
  • 35
  • 1
    This answer does not gaurentee proper adjusts made with the s8. If you build any complicated apps that require measuring views, your view measurements will be affected based on if the nav toolbar is pinned/not pinned, visible/not visible, and even if the virtual keyboard is visible/not visible. So far it looks like you have to remeasure all your views, because "resizeableActivity" doesn't handle much. – portfoliobuilder Sep 29 '17 at 18:45
1

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);
        }
    }
Abubakar
  • 374
  • 3
  • 16
  • It works only if you set your app as full-screen app in Galaxy S8 settings: display->full screen apps. – Barmaley May 03 '17 at 08:05
-5

It can be turned off. I used this tutorial for my S8

How To Enable Full Screen Apps on Galaxy S8/S8+