In this document
Android O introduces adaptive launcher icons, which can display a variety of shapes across different device models. For example, a launcher icon can display using a circular shape on one OEM device, and display a squircle on another device. Each device OEM provides a mask, which the system then uses to render all icons with the same shape. The new launcher icons are also used in shortcuts, the Settings app, sharing dialogs, and the overview screen.
You can control the look of your launcher icon by defining 2 layers, consisting of a background and a foreground. You must provide icon layers as drawables in PNG format without masks or background shadows.
In previous versions of Android, launcher icons were sized at 48 x 48 dp. You must now size your icon layers using the following guidelines.
- Both layers must be sized at 108 x 108 dp.
- The inner 72 x 72 dp of the icon appears within the masked viewport.
- The system reserves the outer 36 dp on each of the 4 sides to create interesting visual effects, such as parallax or pulsing
Creating Adaptive Icons
To add an adaptive icon to an app, begin by updating the
android:icon attribute in
your app manifest to specify a drawable resource. You can also define an icon drawable resource
android:roundIcon attribute. You must only use this attribute if you
require a different icon asset for circular masks, if for example the branding of your logo
relies on a circular shape. The following code snippet illustrates both of these attributes:
<application … android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" …> </application>
Next you must create alternative drawable resources in your app for use with Android O in
res/mipmap-anydpi/ic_launcher.xml. You can then use the
<adaptive-icon> element to define the foreground and background layer drawables
for your icons. The
elements both support the
<adaptive-icon> <background android:drawable="@color/ic_background"/> <foreground android:drawable="@mipmap/ic_foreground"/> </adaptive-icon>
If you don’t update your launcher icon with the necessary layers, the icon doesn’t look consistent with other icons that the system UI displays, and doesn’t support visual effects.