2016-05-04 4 views
5

Я обновил Android-версию 6.0 и у меня возникли проблемы.Цвет значка уведомлений Android не изменяется, когда цвет фона белый.

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

но если некоторые приложения меняют цвет фона на белый, мой значок уведомления не инвертируется на черный.

Как я могу инвертировать белый значок уведомлений в черный цвет, когда цвет фона состояния был установлен белым другим приложением? (Я не говорю, как я могу использовать значок цвета.)

изображение ниже показывает проблемы.

normal status

when changed background color to white, my icon is not changed to black only

  • Уведомление Код сборки

    Notification.Builder mBuilder = 
         new Notification.Builder(context) 
           .setSmallIcon(R.drawable.ic_notifications_none) 
           .setPriority(priority2) 
           .setOngoing(true); 
    
    mBuilder.setContent(generateMessageView(message)); 
    
    Intent notificationIntent = new Intent(context, MainActivity.class); 
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP 
              | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    
    PendingIntent intent = PendingIntent.getActivity(context, 0, 
         notificationIntent, 0); 
    NotificationManager mNotificationManager = 
         (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    mBuilder.setContentIntent(intent); 
    mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 
    
  • значения-V23/styles.xml

    <style name="AppTheme" parent="android:Theme.Material.NoActionBar">    
    </style> 
    

** Обнаружено решение **

Я добавил значки уведомлений в рисовальный каталог, не подлежащий рисованию, - * dpi. Теперь он работает.

+0

Проверьте это [сообщение] (http://stackoverflow.com/questions/28387602/notification-bar-icon-turns-white- в-андроид-5-леденца). Также прочтите эту [документацию] (http://developer.android.com/reference/android/app/Notification.Builder.html#setColor%28int%29). Надеюсь, вы сможете понять. Приветствия ....:) – verbose

+0

@verbose Я уже прочитал, но проверит еще раз. спасибо –

+0

Я пробовал ваше решение, и оно не работало для меня. –

ответ

0

Я думаю, что проблема заключается в устройстве Android 5.0 или выше.

https://developer.android.com/design/patterns/notifications.html
https://developer.android.com/about/versions/android-5.0-changes.html

Вот решение:

Notification notification = new Notification.Builder(context) 
     .setAutoCancel(true) 
     .setContentTitle("My notification") 
     .setContentText("Look, white in Lollipop, else color!") 
     .setSmallIcon(getNotificationIcon()) 
     .build(); 

return notification; 

и метод getNotificationIcon():

private int getNotificationIcon() { 
    boolean useWhiteIcon = (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP); 
    return useWhiteIcon ? R.drawable.icon_black : R.drawable.ic_nomarl; 
} 
+0

спасибо, но это не работает. Я нашел LNotifications из образца android, и у него нет черного изображения значка, но от белого до черного (темно-серый), когда другое приложение работает с белой панелью состояния. и я не нашел какого-либо специального кода, который меняет цвет из LNotifications. –

2

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

У меня тоже была эта проблема, и я обнаружил, что проблема связана с графическим значком. Вы можете решить эту проблему с помощью этого онлайн-инструмента. открыть эту ссылку:

https://romannurik.github.io/AndroidAssetStudio/icons-notification.html#source.type=image&source.space.trim=1&source.space.pad=0&name=ic_stat_call_white

затем выбрать изображение (с большой размерности), а затем загрузить ресурс и скопировать их в свой проект.

затем установите значок уведомления с помощью .setSmallIcon(R.drawable.ICON_NEW_NAME)

надежду, что эта помощь

+0

Спасибо, это решило мою проблему – Oblivionkey3

Смежные вопросы