Home » Android » Android status bar expects icons of size 25x25dp while guidelines recommend 32x32dp. Who is wrong?

Android status bar expects icons of size 25x25dp while guidelines recommend 32x32dp. Who is wrong?

Posted by: admin April 23, 2020 Leave a comment

Questions:

According to android icon design guidelines (here, see table #1), developer needs to provide status bar icons of next sizes:

Status Bar  24 x 24 px (LDPI)  32 x 32 px (MDPI)  48 x 48 px (HDPI)

While my measurements show that status bar always has 25 dp in height and expects icons of 25x25dp. This translates to these sizes:

Status Bar  19 x 19 px (LDPI) 25 x 25 px (MDPI)  38 x 38 px (HDPI)

Here is how I get those size:

25dp * 0.75 = 18.75 => 19px (LDPI)
25dp *  1   = 25    => 25px (MDPI)
25dp *  1.5 = 37.5  => 38px (HDPI)

I have confirmed calculated sizes on several Android phones and on emulators.

The question basically is: why guidelines use sizes different from what is really used by status bar?

P.S. I actually need to break guidelines due to precise pixel control requirements. And I just was confused by this state of affairs. So explanation of why this the way it is would really help me.

How to&Answers:

Warning: regardless of whether or not the answer was correct when written, it appears not to be correct now. See https://www.google.com/design/spec/style/icons.html for the current guidelines.

It just seems to be an error. (Note that as of 2010-12-04, they’ve also crossed their references to figures 4 and 5 on that page.)

As Lex points out, they have the correct number further down, in the “Status bar icon” section.

They also dictate a 2-pixel “safeframe” on all sides at 25×25 which the shape of your icon must fit within, though it seems that it is okay to have some aliasing-related stuff stick out, but only on the sides, for this type of icon. (Meaning that you really want to aim for 21×21 at that size.)

Answer:

Actually it’s

  • 18px(ldpi)
  • 24px(mdpi)
  • 36px(hdpi)
  • 48px(xhdpi)
  • 72px(xxhdpi)
  • 96px(xxxhdpi)

it’s 24dp size with a 2dp padding , means 20dp content

px = dp * (dpi/160)