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.
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.)
it’s 24dp size with a 2dp padding , means 20dp content
px = dp * (dpi/160)