Большой фон значка уведомлений

Так как большие значки Android 5.0 в уведомлениях имеют цветной фон:

lollipop-notification

Для небольшого значка это цвет акцента уведомления (Notification.Builder.setColor(int)). Как установить его для большого значка? Является ли это частью фактического изображения? Если это так, каков должен быть радиус круга?

Ответ 1

Да, цвет большого значка является частью фактического изображения. Размеры большого значка на леденец 40x40dp с оптическим видом, заполняющим все изображение. Таким образом, вы должны создать актив 40x40dp с кругом радиуса 20dp. Вы можете установить большой значок уведомления следующим образом:

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
    .setSmallIcon(R.drawable.notification_small_icon)
    .setLargeIcon(notificationLargeIconBitmap)
    .setContentTitle("Notification")
    .setContentText("Content text")
    .setColor(context.getResources().getColor(R.color.accent_color));

Если вам нужен большой значок из ресурса, вы можете получить экземпляр Bitmap, например:

Bitmap notificationLargeIconBitmap = BitmapFactory.decodeResource(
    context.getResources(), 
    R.drawable.notification_large_icon);

Если вы хотите, чтобы ваше уведомление было хорошо отображено в предыдущих версиях Android (kitkat и ниже), вы должны иметь квадратную версию вашего большого значка с размером 64x64dp.

Ответ 2

Значок большого размера всегда должен иметь фон (например, аватар). Он также использовался на изнашиваемых устройствах в качестве фона для уведомления. Он отображается на разных цветах фона, поэтому он должен быть непрозрачным.