Размер иконки в строке состояния Android - Использование плагинов Cordova / Phonegap
Я разрабатываю приложение для Android с использованием Ionic (Cordova + AngularJS). С его помощью я использую Push Plugin ( https://github.com/phonegap-build/PushPlugin)
В моей папке ресурсов у меня есть 6 различных значков приложений, от ldpi
в xxxhdpi
<icon src="resources/android/icon/drawable-ldpi-icon.png" density="ldpi"/>
<icon src="resources/android/icon/drawable-mdpi-icon.png" density="mdpi"/>
<icon src="resources/android/icon/drawable-hdpi-icon.png" density="hdpi"/>
<icon src="resources/android/icon/drawable-xhdpi-icon.png" density="xhdpi"/>
<icon src="resources/android/icon/drawable-xxhdpi-icon.png" density="xxhdpi"/>
<icon src="resources/android/icon/drawable-xxxhdpi-icon.png" density="xxxhdpi"/>
Теперь, после того, как я соберу это, моя окончательная структура ресурсов выглядит примерно так:
android/res/drawable-ldpi/icon.png
android/res/drawable-mdpi/icon.png
и так далее...
Теперь это прекрасно работает для значка приложения на всех устройствах. Но если я получаю Push-уведомление, значок приложения, отображаемый в строке состояния, слишком велик, поэтому отображается только середина значка (только в течение первых секунд, кажется, после этого происходит перезагрузка уведомления (если я потяну вниз в строке состояния, например) он отображается правильно).
После небольшого исследования я обнаружил, что предоставленные мной значки являются правильными для общих значков приложений, но значки для строки состояния должны быть в другом измерении, как я обнаружил здесь: строка состояния Android ожидает значки размером 25x25dp, в то время как рекомендации рекомендуют 32x32dp, Кто не прав? (2-й ответ)
Например, используя мой Samsung S5, я отключил свой значок xxhdpi 144*144 пикселей для того же значка в размере 72*72 пикселей, и он работает. значок больше не вырезан.
Теперь на мой вопрос: как мне настроить эти "вторичные" значки, которые я использую для уведомлений только в моей папке ресурсов, не перезаписывая исходные?
1 ответ
Вам не нужно быть настолько строгим в отношении размера изображения. Поместите две иконки в папку платформа / Android/ Res/ Drawable. Один для отображения на панели навигации на леденце (например: small_icon.png), он должен быть белым и без фона. И другой для более старых версий Android (например: large_icon.png).
Откройте файл конфигурации PushPlugin, расположенный по адресу:
platforms/android/src/com/plugin/gcm/GCMIntentService.java
Задайте путь к значкам в объекте NotificationCompat.Builder:
.setSmallIcon(com.domain.appName.R.drawable.small_icon)
.setLargeIcon(largeIcon)
Большой значок должен быть растровым, поэтому определите перед этим:
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
Bitmap largeIcon = BitmapFactory.decodeResource(getResources(), com.domain.appName.R.drawable.large_icon);
Надеюсь, это поможет вам.