362

For HDPI, XHDPI, etc. what should be the ideal size of the launcher icon? Should I have to create 9-Patch images for the icon to scale automatically, or would it be better to create separate icons?

Mangesh
  • 4,413
  • 4
  • 41
  • 59
AndroidDev
  • 14,441
  • 25
  • 78
  • 116
  • 9
    You _don't_ create 9-patch images for launcher icons. 9-patch are for images (resources) within the application. @edwoollard has provided the correct answer. For more information, go through this link here: http://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html – Siddharth Lele Oct 07 '12 at 11:02
  • But just asking out of curiosity, can we use 9-patches for launcher icon? – Mohammad Jafar Mashhadi Nov 04 '14 at 21:07
  • You can get different size for icons : https://play.google.com/store/apps/details?id=com.dsquareinfoways.iconsizegenerator&hl=en – Darsh Patel Apr 16 '15 at 10:26
  • how can I set 2 different icons: one for android app, one for Chromebook app. Is it possible? – Kiem Duong Jun 02 '20 at 15:53

13 Answers13

719

I would create separate images for each one:

LDPI should be 36 x 36.

MDPI should be 48 x 48.

TVDPI should be 64 x 64.

HDPI should be 72 x 72.

XHDPI should be 96 x 96.

XXHDPI should be 144 x 144.

XXXHDPI should be 192 x 192.

Then just put each of them in the separate stalks of the drawable folder.

You are also required to give a large version of your icon when uploading your app onto the Google Play Store and this should be WEB 512 x 512. This is so large so that Google can rescale it to any size in order to advertise your app throughout the Google Play Store and not add pixelation to your logo.

Basically, all of the other icons should be in proportion to the 'baseline' icon, MDPI at 48 x 48.

LDPI is MDPI x 0.75.

TVDPI is MDPI x 1.33.

HDPI is MDPI x 1.5.

XHDPI is MDPI x 2.

XXHDPI is MDPI x 3.

XXXHDPI is MDPI x 4.

This is all explained on the Iconography page of the Android Developers website: http://developer.android.com/design/style/iconography.html

edwoollard
  • 11,875
  • 6
  • 38
  • 69
  • 3
    Where do you put the WED version? – Mafro34 Dec 03 '13 at 10:50
  • 10
    @Mafro34 I presume you mean the WEB version? When you finally complete your app and upload it onto the Google Play Store, it will ask for you to upload a 512 x 512 app icon. This means that they can then use the icon anywhere around the website and the app in order to advertise your app. – edwoollard Dec 03 '13 at 11:59
  • @Mafro34 They ask for 512 x 512 so that they can then scale the icon down to whatever size they need on the different positions of the app and website, without causing pixelation. – edwoollard Jan 11 '14 at 13:53
  • @edwoollard oops, sorry, I didn't see your last line ("`this is all explained ...`"). What you have is essentially a snapshot of their (evolving) requirements. – ashes999 Dec 28 '14 at 17:14
  • I've created a script that exports Android launcher icons at velara3.com and from my research XXHDPI is 180x180 not 144. See developer.android.com/guide/practices/screens_support.html. Search on the page for, "180x180 (3.0x) for extra-extra-high-density". However, I've seen 144 a few places. – 1.21 gigawatts Jan 25 '15 at 05:13
  • so how can create this size of file in photoshop? so if I create 36 x 36 pixels it seems that very small in real device. – Mahdi May 05 '15 at 12:33
  • @Kenji Before you save a file down, make sure you've changed the canvas size to be 36 x 36 pixels. This is a very small size indeed, it is either correct and just looks very small to you, or you're using the wrong image size and your device expects larger images. – edwoollard May 05 '15 at 12:59
  • @edwoollard I get some icons and images from Gmail application from resource in .apk file and I get that as i told google uses different sizes in pixel. for example it's menu icon size was these raneg: mdpi 120x120 pixel, hdpi: 180x180 pixel, xdpi:240x240. so i confused what these size that u said and google said, and what these sizes that google used in it's own application!? I think problem is with difference of dp and pixel. what do u think? – Mahdi May 06 '15 at 15:26
  • @Kenji Yes I'm sure this is a miscommunication of dp vs. pixels. Make sure you do not confuse them! It is best to utilise dp instead of pixels as pixels change across different screen densities, dp stay the same as they are already in relation to the screen density, hence why they are called dp (Density Independent Pixel). This is much the same as using sp (Scale Independent Pixel) for typography in Android instead of pixels. Please refrain from using pixels. The Android Developer page I have supplied specifies all the exact dp values you should use for the relevant types of images. – edwoollard May 06 '15 at 18:27
  • @Kenji Here is a nice article from Google that explains exactly why "when specifying dimensions, always use either dp or sp units". Good luck! Hope all of this makes a bit more sense. http://developer.android.com/training/multiscreen/screendensities.html – edwoollard May 06 '15 at 18:29
  • I know that friend. but when you wanna create that object in photoshop there is no dp and you should use pixel or another dimensions. what the relation of dp in here and pixel in photoshop? – Mahdi May 07 '15 at 09:38
125

Don't Create 9-patch images for launcher icons . You have to make separate image for each one.

LDPI - 36 x 36
MDPI - 48 x 48
HDPI - 72 x 72
XHDPI - 96 x 96
XXHDPI - 144 x 144
XXXHDPI - 192 x 192.
WEB - 512 x 512 (Require when upload application on Google Play)

Note: WEB(512 x 512) image is used when you upload your android application on Market.

|| Android App Icon Size ||

All Devices

hdpi=281*164
mdpi=188*110
xhdpi=375*219
xxhdpi=563*329
xxxhdpi=750*438

48 × 48 (mdpi)
72 × 72 (hdpi)
96 × 96 (xhdpi)
144 × 144 (xxhdpi)
192 × 192 (xxxhdpi)
512 × 512 (Google Play store)
cakan
  • 1,820
  • 5
  • 29
  • 33
Chirag
  • 55,270
  • 29
  • 150
  • 194
  • 2
    @RED.Skull no, he means the icon you upload to the Google Developer Dashboard to be viewed on the market by users – Mirko Aug 08 '14 at 16:21
  • 7
    @Ogen - It is good habit to ask question, yes units are in pixels. – Chirag Jan 22 '15 at 12:07
  • Is it possible to just provide the 192 x 192 version in mipmap-xxxhdpi folder and have the system scale it down appropriately? – eliasbagley Jan 13 '16 at 05:15
  • @eliasbagley: Sure, that works. But it's not optimal (otherwise the whole system of density-specific folders wouldn't exist). – Jonik Oct 21 '16 at 10:23
100

Android icons require five separate sizes for different screen pixel densities. Icons for lower resolution are created automatically from the baseline.

mdpi (Baseline): 160 dpi 1×
hdpi: 240 dpi 1.5×
xhdpi: 320 dpi 2×
xxhdpi: 480 dpi 3×
xxxhdpi: 640 dpi 4× (launcher icon only)

Launcher icons (.Png)

48 × 48 (mdpi)
72 × 72 (hdpi)
96 × 96 (xhdpi)
144 × 144 (xxhdpi)
192 × 192 (xxxhdpi)
512 × 512 (Google Play store)

Action bar, Dialog & Tab icons

24 × 24 area in 32 × 32 (mdpi)
36 × 36 area in 48 × 48 (hdpi)
48 × 48 area in 64 × 64 (xhdpi)
72 × 72 area in 96 × 96 (xxhdpi)
96 × 96 area in 128 × 128 (xxxhdpi)*

Notification icons

22 × 22 area in 24 × 24 (mdpi)
33 × 33 area in 36 × 36 (hdpi)
44 × 44 area in 48 × 48 (xhdpi)
66 × 66 area in 72 × 72 (xxhdpi)
88 × 88 area in 96 × 96 (xxxhdpi)*

Small Contextual Icons

16 × 16 (mdpi)
24 × 24 (hdpi)
32 × 32 (xhdpi)
48 × 48 (xxhdpi)
64 × 64 (xxxhdpi)*

The xxxhdpi size needed only by the launcher icon as the Supporting multiple Screens official site says.

STS
  • 1,095
  • 1
  • 8
  • 11
48

Adaptive Icons

Starting with Android 8.0 there are adaptive icons, which are made up of two separate layers. Both layers are 108 x 108 dp.

enter image description here

(image adapted from Android documentation)

Sizes

If you are supporting versions below Android 8.0, you still need to include the legacy sizes (48dp). I marked the pixel sizes in red for each resolution below.

enter image description here

Don't do it by hand

I suppose you could make all of those by hand if you want to, but I have to say that my days of doing that are over. The Android Studio 3.0 Asset Studio is quite good and will generate them all for you. All you have to do is supply a sufficiently large foreground and background image. (I used a 1024 x 1024 px image).

To open the Asset Studio go to File > New > Image Asset.

enter image description here

Community
  • 1
  • 1
Suragch
  • 364,799
  • 232
  • 1,155
  • 1,198
  • Will the legacy icons have to be with a background too? – android developer Sep 14 '17 at 13:32
  • @android developer, you can select "Legacy only" as the icon type if you want to generate icons without specifying the background layer. If you choose "Adaptive and Legacy", the legacy icons will be generated by merging the foreground and background layers. – Suragch Sep 14 '17 at 13:52
  • The actual background layer itself (as a distinct layer) will only ever be used on Android 8.0+ devices. – Suragch Sep 14 '17 at 13:54
  • What if I want adaptive icons style to be used only from Android O, and legacy ones styles (without the extra background, even if merged) on before? Is it also possible to avoid the background on Android O ? I don't like adaptive icons style... – android developer Sep 14 '17 at 14:03
  • @android developer, Just generate the icons in two passes. First do "Adaptive and Legacy" and provide both layers. (You can even specify not to generate the Legacy icons at this point, but it doesn't matter.) Then do "Legacy only" and chose whatever image you want (for example, the foreground image). If the Legacy icons were already generated in the first pass, they will be overwritten with your new (backgroundless) image in the second pass. Remember that you can always delete any of these files and replace them with images you create by hand. – Suragch Sep 14 '17 at 14:12
  • @android developer, yes, you can use the legacy icons on Android O, too, though it isn't recommended. Just delete the `mipmap-anydpi-v26` folder and don't provide any background/foreground images. – Suragch Sep 14 '17 at 14:21
  • Even if I target to Android O ? – android developer Sep 14 '17 at 23:31
  • @android developer, yes. – Suragch Sep 15 '17 at 03:44
  • The Asset Studio also told me it would create a 512x512 size icon for the Play Store but I cannot find it. In your screenshot I can also not find it. If it is trivial please advise, otherwise I will create a separate question. Thanks. – Martin Zaske Dec 12 '18 at 19:36
25

No need for third party tools when Android Studio can generate icons for us.

  • File -> New -> Image Asset

  • Then choose Launcher Icons as the Asset Type:

  • Choose a High-res image for the Image file:

Android Generate Launcher Icons

  • Next -> Finish to generate icons

generate ic laucher icons

Finally update android:icon name field in AndroidManifest.xml if required.

Gayan Weerakutti
  • 7,029
  • 50
  • 55
  • 4
    Android Studio seems to generate extra padding around my icons despite I have told it to trim blank spaces and made sure the padding slider is all the way to the left. A bug with Android Studio maybe or am I missing a step? – Zhang Feb 15 '16 at 15:15
  • This method (unfortunately) sucks because of the extra padding Android Studio puts in... – Micro May 27 '16 at 02:14
  • Right-click the res folder and select New > Image Asset. go to..https://developer.android.com/studio/write/image-asset-studio.html – Waruna Manjula May 30 '17 at 05:54
13

Provide at least an 512px X 512px image and use this tool: https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html

It will generate all icons for you in the correct size, inclusive the web image for the play store.

LuckyMalaka
  • 9,651
  • 4
  • 32
  • 56
  • Cool but it do not generate ldpi size: PNG image data, 36 x 36, 8-bit/color RGBA, non-interlaced. This size is used on devices running Jelly Beans :).. – Hudson Santos Mar 13 '16 at 02:16
  • Create a new project with Android Studio and you will see that there is no ldpi folder anymore. I would assume that you do't need them anymore. – LuckyMalaka Mar 18 '16 at 12:12
7

LDPI should be 36 x 36.

MDPI 48 x 48.

TVDPI 64 x 64.

HDPI 72 x 72.

XHDPI 96 x 96.

XXHDPI 144 x 144.

XXXHDPI 192 x 192.

rajlaxmi_jagdale
  • 1,170
  • 13
  • 16
  • 1
    What did your answer provide that others haven't already? Please don't leech on other people's answers for reputation...earn it yourself. – edwoollard Mar 14 '16 at 12:38
  • This looks like an exact copy+paste from this this answer: https://stackoverflow.com/a/12768159/1974224 – Cristik Mar 09 '18 at 07:12
7

According to the Material design guidelines (here, under "DP unit grid"), your product icon should be of size 48 dp, with a padding of 1dp, except for the case of XXXHDPI, where the padding should be 4dp.

So, in pixels, the sizes are:

  • 48 × 48 (mdpi) , with 1 dp padding
  • 72 × 72 (hdpi), with 1 dp padding
  • 96 × 96 (xhdpi), with 1 dp padding
  • 144 × 144 (xxhdpi), with 1 dp padding
  • 192 × 192 (xxxhdpi) , with 4 dp padding

I recommend to avoid using VectorDrawable as some launchers don't support it, but I think WEBP should be ok as long as you have your minSdk support transparency for them (API 18 and above - Android 4.3).

If you publish on the Play Store, the requirement to what to upload there are (based on here) :

  • 32-bit PNG (with alpha)
  • Dimensions: 512px by 512px
  • Maximum file size: 1024KB
android developer
  • 106,412
  • 122
  • 641
  • 1,128
6

Well as @MartinVonMartinsgrün mentioned Now there is exists Better tools then assert generator in android studio

For application Icon ( Toolbar , ActionBar , DrawableLeft etc ) Use : http://romannurik.github.io/AndroidAssetStudio/icons-actionbar.html

For launcher (Application Icon ) Use : https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html

But Here are some tricks and way to get the better resolution for icons and launcher icons.

Step 1 :

First go to the https://materialdesignicons.com and choose your icon . Or if you have your icon in good resolution then skip this step . Click the desired icon and click on "Advanced Export" it will open up a window like this below Try to generate as large icon as possible

Then click the "Icon" to generate icon (.png) . Well the trick is try to generate as large icon as possible for high resolution devices and the tools will handle it all for small devices but if you use small icon , while generating the icon for high end devices you will loose the icon resolution .

Step 2 :

Then go the Tools page and Upload the Iconenter image description here

Click the "Custom" if you want to color your icon . No matter what color of icon you are uploading , by using Custom you can generate any color you want . Then choose a name and click "Download .ZIP" . This will download the .zip file with the icon for most of the common resolution . You can copy and paste the res folder in your application project folder and you will see the icon in the drawable section .

sh0umik
  • 991
  • 1
  • 11
  • 25
4

I've posted a script for generating all platform icons for PhoneGap apps from a single SVG icon file. If you have existing bitmaps, I also include some notes that may help you to generate the SVG vectors from an existing bitmap. This won't work for all bitmaps but may for yours.

Tony O'Hagan
  • 19,136
  • 3
  • 58
  • 65
  • I develop in Sencha Touch so it also includes code to generate icons for Sencha. It's easy to remove this and adapt for your needs. I'd value some contribution to help generate start up screens – Tony O'Hagan Aug 28 '14 at 02:24
  • Haha ... I *just* did this in a zsh script. Well, darn. – dylnmc Oct 25 '15 at 21:22
  • [Iconic framework](http://ionicframework.com/) also includes an [image generator](http://ionicframework.com/docs/cli/icon-splashscreen.html) for Splash screens and app icons – Tony O'Hagan Nov 20 '15 at 06:35
2

I had the same problem but then realized the arrangement of my icon graphic within the square allowed (512 x 512 in my case) was not maximized. So I rotated the image and was able to scale it up to fill the corners better. Then I right clicked on my res folder in my project in Android Studio, then choose New then Image Asset, it took me through a wizard where I got to select my image file to use. Then if you check the box that says "Trim surrounding blank space", it makes sure all edges, that are able, touch the sides of your square. These steps got it much bigger than the original.

Azurespot
  • 2,619
  • 3
  • 36
  • 66
1

Launch image and Slash image size for Google Play Store app submission

  1. High-res icon. PFB the table for required sizes 32-bit PNG (with alpha), Dimensions: 512px by 512px, Maximum file size: 1024KB

Required Launch Icon And Splash Image size

  1. At least 2 screenshots are required overall (Max 8 screenshots per type, Types include "Phone", "7-inch tablet" and "10-inch tablet”). JPEG or 24-bit PNG (no alpha), Minimum dimension: 320px, Maximum dimension: 3840px, Sample sizes: 320 x 480, 480 x 800, 480 x 854,1280 x 720, 1280 x 800 24 bit PNG or JPEG
Anitha
  • 119
  • 1
  • 8
1

You can create icons directly in the android studio itself.The Steps you need to follow are:

1.Right click on Res->New->Image asset

2.CHange asset type to image.

3.Load the image from the local disk

4.You have options to trim,change padding and add background also.Change the values if you need.

5.click Next->Finish.

The image wil be automatically added to mipmap-mdpi,mipmap-hdpi,mipmap-xhdpi,mipmap-xxhdpi,mipmap-xxxhdpi if you select launcher icon or drawable-mdpi,drawable-hdpi,drawable-xhdpi,drawable-xxhdpi,drawable-xxxhdpi ifyou select other icon optins.

Sharath kumar
  • 3,864
  • 1
  • 10
  • 20