NotificationCompat.Builder setLargeIcon не показывает изображение в уведомлении - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь показать маленькую иконку в уведомлении.Пробовал с несколькими расширениями.JPG, BMP, PNG, SVG.

Он показывает маленький значок, когда действие выполняется, но когда действие не выполняется, он не показывает маленький значок в уведомлении.

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_success);

        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
                .setLargeIcon(bitmap)
                .setStyle(new NotificationCompat.BigPictureStyle()
                        .bigPicture(bitmap))
                .setSmallIcon(R.mipmap.ic_launcher_round)
                .setContentTitle(notification.getTitle())
                .setContentText(notification.getBody())
                .setAutoCancel(true)
                .setContentIntent(pendingIntent);

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

уведомление

Ответы [ 3 ]

0 голосов
/ 22 мая 2019

Значки Android (и другие элементы пользовательского интерфейса, такие как длина перетаскивания) измеряются в dp. Дп - это устройство / независимый от плотности пиксель. 1 dp эквивалентен 1 px на экране с разрешением 160 dpi. Но для преобразования в другие значения плотности экрана необходимо умножить его на коэффициент плотности. Поэтому обычно рекомендуется использовать несколько изображений для большинства значков.

Например, значки уведомлений, используемые в строке состояния, задаются как 24x24 dp с полем в 1 dp (поэтому фактический значок занимает только оптический квадрат 22x22 dp, хотя некоторые из AA могут сливаться в этот 1 dp Запас / SafeFrame). Чтобы преобразовать 24 dp в фактические размеры в пикселях, используются следующие приблизительные расчеты:

display density  dp units * scale = px units
ldpi  ~120 dpi   24x24 dp * .75   = 18x18 px
mdpi  ~160 dpi   24x24 dp * 1.0   = 24x24 px
hdpi  ~240 dpi   24x24 dp * 1.5   = 36x36 px
xhdpi ~320 dpi   24x24 dp * 2.0   = 48x48 px
0 голосов
/ 22 мая 2019

Пожалуйста, попробуйте сначала установить растровое изображение на стиль


NotificationCompat.BigPictureStyle style = new NotificationCompat.BigPictureStyle (); style.bigPicture (растровый);

Тогда используйте вышеуказанный стиль на
SetStyle (стиль)

0 голосов
/ 21 мая 2019

Вы пробовали с идеальным квадратным изображением? Я имею в виду ту же ширину и высоту. Это может быть проблема.

Я показал большой значок с изображением размером 144x144 png, и он работает как шарм.

...