2014-11-17 16 views
25

Ponieważ Android 5.0 dużych ikon powiadomień ma kolor tła:Duża ikona powiadomienia tło

lollipop-notification

dla małych ikon, jest to kolor akcent zgłoszenia (Notification.Builder.setColor(int)). Jak ustawić dla dużej ikony? Czy to część rzeczywistego obrazu? Jeśli tak, to jaki powinien być promień okręgu?

Odpowiedz

32

Tak, kolor dużej ikony jest częścią rzeczywistego obrazu. Wymiary dużej ikony na lollipopie to 40x40dp z widokiem optycznym wypełniającym cały obraz. Powinieneś więc utworzyć zasób 40x40dp z okręgiem o promieniu 20dp. Można ustawić notyfikacji za dużą ikonę następująco:

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)); 

Jeśli potrzebujesz dużej ikony się z rozciągliwej zasobu można uzyskać Bitmap wystąpienie takiego:

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

Jeśli chcesz swój powiadomienie będzie ładnie wyświetlane w poprzednich wersjach Androida (kitkat i poniżej), powinieneś mieć kwadratową wersję swojej dużej ikony o wymiarze 64x64dp.

+0

Wymiary dużej ikony powinny wynosić 64x64dp, a nie 40x40dp. Sprawdzone w Android SDK. – igla

+0

Rozmiar dużej ikony to w rzeczywistości 64x64dp na kitkacie i poniżej, ale na Lollipopie wynosi 40x40dp. Nie mogę jednak pobrać źródła, w którym znalazłem informacje. – alxscms

+0

Nie, jesteś w błędzie z Lollipop. Przetestowałem to i okazało się, że ikona jest rozmyta, jeśli wymiary dużej ikony wynoszą 40x40dp. Źródła Androida 21 SDK wskazują również na to, że rozmiar powinien wynosić 64x64dp. Możesz to sprawdzić samemu :) – igla

0

Duża ikona powinna zawsze mieć tło (tj. Awatar). Jest również używany na urządzeniach zużywających się jako tło dla powiadomienia. Jest wyświetlany na różnych kolorach tła, dlatego powinien być nieprzejrzysty.

+0

Nie, nie powinno. Jeśli potrzebujesz kwadratowego zasobu dla urządzeń przenośnych, możesz mieć wiele wersji tego samego zasobu dla różnych urządzeń. – alxscms

+0

Oczywiście, że możesz, ale to nic nie kosztuje. A jeśli masz ikonę dynamiczną, to jeszcze więcej na głowie, aby ją dodatkowo zaokrąglić, gdy jest ona wyświetlana z zaokrągloną maską. Utrzymuj rzeczy proste. – notz