Как узнать фактический размер маленького значка уведомления во время выполнения? - PullRequest
1 голос
/ 03 ноября 2019

Я знаю, что есть список разных размеров для маленьких значков уведомлений для разных экранов, как показано здесь . Это полезно знать при подготовке набора статических файлов значков для приложения.

Но мне нужно создать значок динамически, используя setSmallIcon(Icon) из Notification.Builder. Для больших значков я могу вызвать, например, getResources().getDimensionPixelSize(android.R.dimen.notification_large_icon_width) и аналогичный для высоты, чтобы получить точные числовые значения. Как я могу сделать то же самое для маленькой иконки?

1 Ответ

1 голос
/ 03 ноября 2019

Маленькая иконка имеет размер 24 dp. Вы можете вычислить фактический размер в px во время выполнения.

Kotlin:

val smallIconSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24f, resources.displayMetrics)

Java:

float smallIconSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, getResources().getDisplayMetrics())

Если у вас нет контекста (использоватьgetResources), вы можете использовать это как запасной вариант:

val smallIconSize = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24f, Resources.getSystem().displayMetrics)
...