A recent blog explains that we must use
<meta-data android:name="android.max_aspect" android:value="2.1" />
in <application> element of AndroidManifest.xml for optimal display on super widescreen devices, e.g. Samsung Galaxy S8.
To test this, I installed my app (no max_aspect, no resizeableActivity flags; targetSdkVersion=22, compileSdkVersion=24) on an Android 7.1.1. emulator with custom 2960x1440 resolution. All activities, including immersive, fill the screen with no margins as shown in the blog post.
I added explicit
<meta-data android:name="android.max_aspect" android:value="1.5" />
and this also had no effect on the emulator.
So, the question: is this meta flag only checked on the real devices, or there is some configuration that I missed for my emulator?
Update: I tried to reach Neto Marin, the author of the cited blog post. I found a proud tweet ![]](https://i.sstatic.net/6ltG1.png) about his contribution to the global Android Dev community, but could not get an answer from him.
 about his contribution to the global Android Dev community, but could not get an answer from him.
The android.max_aspect only makes difference if your android:resizeableActivity is not true. If your app's target API is 24 or higher android:resizeableActivity is set as true.
Note: 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. For more information, see Configuring your app for multi-window mode.
Please refer to the documentation.
Letterboxing happens on different devices, like Samsung S8, LG G6, Pixel 2 XL, and some others. It seems to be part of Android 8 and especially 8.1.
The official Android 8.1 compatibility definition includes the following paragraph:
[C-0-1] Device implementations with the Configuration.uiMode set as UI_MODE_TYPE_NORMAL MUST have an aspect ratio value between 1.3333 (4:3) and 1.86 (roughly 16:9), unless the app can be deemed as ready to be stretched longer by meeting one of the following conditions:
- The app has declared that it supports a larger screen aspect ratio through the android.max_aspect metadata value.
- The app declares it is resizeable via the android:resizeableActivity attribute.
- The app is targeting API level 26 or higher and does not declare a android:MaxAspectRatio that would restrict the allowed aspect ratio.
Note that the first two attributes are application-level, while latter attribute belongs to Activity.
Some vendors allow the end-user to control this further. LG has "App Scaling" menu; Samsung lets you choose "full screen apps" on "Display" Settings.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With