2016-05-04 21 views
5

Uaktualniłem system Android 6.0, a moja aplikacja ma problem.Kolor ikony powiadomień na Androidzie nie zmienia się, gdy kolor tła jest biały

kiedy kolor tła paska stanu nie jest biały, ikona powiadomienia jest dobra. (ikona powiadomienia png ma biały i alfa)

, ale jeśli niektóre aplikacje zmieniają kolor tła na biały, moja ikona powiadomienia nie jest odwrócona na czarny.

Jak mogę odwrócić białe ikony powiadomień na czarno, gdy kolor tła paska stanu jest biały ustawiony przez inną aplikację? (Nie mówię, jak mogę użyć ikony koloru.)

poniższe zdjęcie pokazuje problem.

normal status

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

  • Zgłoszenie kod budowy

    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()); 
    
  • wartościach V23/styles.xml

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

** Znaleziono rozwiązanie **

Dodałem ikony powiadomień do katalogu, który nie jest rysowany do rysowania - * dpi. Teraz działa.

+0

Sprawdź ten [post] (http://stackoverflow.com/questions/28387602/notification-bar-icon-turns-white- in-android-5-lollipop). Przeczytaj także tę [dokumentację] (http://developer.android.com/reference/android/app/Notification.Builder.html#setColor%28int%29). Mam nadzieję, że dostaniesz wskazówkę. Twoje zdrowie ....:) – verbose

+0

@verbose Już czytałem, ale sprawdzę ponownie. dziękuję –

+0

Próbowałem Twojego rozwiązania i nie działało dla mnie. –

Odpowiedz

0

Myślę, że problem leży w urządzeniu z Androidem 5.0 lub wysokim.

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

Oto rozwiązanie:

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

return notification; 

i sposób 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

dziękuję, ale nie działa. Znalazłem LNotifications z próbki Androida i nie ma obrazu czarnej ikony, ale od białego do czarnego (ciemnoszare), gdy inna aplikacja działa z białym paskiem stanu. i nie znalazłem żadnego specjalnego kodu zmieniającego kolor z LNotifications. –

2

wiem, że późno, by odpowiedzieć, ale dla innych, którzy mają ten sam problem ,

Miałem również ten problem i stwierdziłem, że problem dotyczy ikony graficznej. Możesz rozwiązać problem za pomocą tego narzędzia online. otworzyć ten link:

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

następnie wybierz swój obraz (z dużym wymiarze), a następnie pobrać zasób i skopiować je do projektu.

następnie ustawić ikonę powiadomienia używając .setSmallIcon(R.drawable.ICON_NEW_NAME)

nadzieję, że ta pomoc

+0

Dzięki, to rozwiązało mój problem – Oblivionkey3

Powiązane problemy