Может быть, вы сможете извлечь стандартный значок панели уведомлений и измерить его.
Вам придется использовать системный значок, чтобы у вас было больше шансов присутствовать во всех настройках Android (Sense UI, MotoBlur и т. Д....)
Что-то вроде:
Drawable phoneCallIcon = getResources().getDrawable(android.R.drawable.stat_sys_phone_call);
int height = phoneCallIcon.getIntrinsicHeight();
Запуск этого из моего Nexus One дает высоту 38 пикселей, что точно.
Более безопасный подход кэтот «хак» будет перебирать некоторые стандартные значки уведомлений.
Это будет так:
int notificationBarResources[] = {
android.R.drawable.stat_sys_phone_call,
android.R.drawable.stat_notify_call_mute,
android.R.drawable.stat_notify_sdcard,
android.R.drawable.stat_notify_sync,
android.R.drawable.stat_notify_missed_call,
android.R.drawable.stat_sys_headset,
android.R.drawable.stat_sys_warning };
int notificationBarHeight = -1;
for (int i = 0; i < notificationBarResources.length; i++) {
try {
Drawable phoneCallIcon = getResources().getDrawable(
android.R.drawable.stat_sys_phone_call);
if ((notificationBarHeight = phoneCallIcon.getIntrinsicHeight()) != -1) {
break;
}
} catch (Resources.NotFoundException e) {
// Nothing to do
}
}