Android / Ikony / Diagnostyka
Biały kwadrat zamiast logo w powiadomieniu Androida: jak znaleźć przyczynę?
Logo wygląda dobrze na ekranie głównym telefonu, ale w powiadomieniu zamienia się w pełny kwadrat. To sygnał, żeby sprawdzić przezroczystość źródła i zasób małej ikony. Na przykładzie eksportu Icons byFox pokazujemy drogę od prostego znaku do kontroli plików w aplikacji.
1. Najpierw ustal, którą ikonę oglądasz
Ikona launchera reprezentuje aplikację na ekranie głównym. Mała ikona powiadomienia, wskazywana przez setSmallIcon(), jest osobnym zasobem. Ustawienie android:icon w manifeście i poprawny wygląd launchera nie potwierdzają, że powiadomienie korzysta z właściwego obrazu.
Zacznij od kodu lub konfiguracji, która rzeczywiście tworzy problematyczne powiadomienie. Zapisz nazwę wskazanego zasobu oraz wariant aplikacji uruchomiony na telefonie. Jeżeli aplikacja ma kilka sposobów wysyłania powiadomień, sprawdź konkretną ścieżkę zamiast podmieniać wszystkie pliki o podobnej nazwie.
2. Zrób próbę z prostą sylwetką
Przygotuj jednobarwny znak z przezroczystym otoczeniem, na przykład dzwonek bez prostokątnego tła. W małej ikonie system wykorzystuje kształt opisany przez kanał alfa. Jeśli cały prostokąt jest nieprzezroczysty, samo przemalowanie obrazu na biało nie wytnie z niego logo.
W Icons byFox wybierz prosty clipart i dodaj format Android Notification. To dobry punkt odniesienia do porównania z własnym plikiem. Ten eksport pomija tło launchera i ozdobne badge; przy własnym obrazie nadal potrzebuje prawidłowej przezroczystości źródła.
Porównaj dwie próby: symbol z biblioteki oraz własne logo. Jeśli pierwszy wygląda poprawnie, a drugi daje kwadrat, skup się na źródle grafiki. Jeśli obie próby pokazują ten sam stary znak, sprawdź nazwę zasobu i instalowany wariant aplikacji. Takie porównanie ogranicza liczbę ustawień zmienianych jednocześnie.
3. Sprawdź zawartość eksportu przed skopiowaniem
W obecnym eksporcie Android Notification z Icons logiczny rozmiar ikony wynosi 24 dp. ZIP zawiera PNG o wymiarach 24, 36, 48, 72 i 96 pikseli w katalogach drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi i drawable-xxxhdpi. To warianty gęstości jednego symbolu, a nie pięć różnych ikon.
Rozpakuj archiwum w osobnym katalogu i otwórz PNG na tle pokazującym przezroczystość. Oceń zarówno pełny prostokąt obrazu, jak i sam znak. Bardzo duże przezroczyste marginesy sprawią, że symbol będzie mały nawet wtedy, gdy plik ma prawidłowy wymiar w pikselach. Dopiero po tej kontroli dopasuj skalę kompozycji i ponów eksport.
Przykłady w dokumentacji Icons zakładają domyślną nazwę ic_stat_notification. Generator pozwala zmienić nazwę eksportu, dlatego sprawdź rzeczywistą nazwę PNG i dołączony README. Nie kopiuj odwołania do domyślnego zasobu, jeżeli Twoja paczka zawiera pliki nazwane inaczej.
4. Podłącz zasób w miejscu tworzenia powiadomienia
Scal katalog res z archiwum z katalogiem src/main/res modułu aplikacji. Dla domyślnej nazwy odwołanie w natywnym kodzie Androida ma postać setSmallIcon(R.drawable.ic_stat_notification). Nie umieszczaj dodatkowego katalogu res wewnątrz istniejącego res i nie zastępuj całego katalogu zasobów aplikacji.
Jeśli aplikacja korzysta z biblioteki powiadomień we Flutterze, sprawdź jej aktualną dokumentację dotyczącą nazwy małej ikony. Sposób przekazania nazwy może różnić się od natywnego odwołania R.drawable. Sama podmiana obrazu nie zastępuje konfiguracji kanałów ani uprawnień do wyświetlania powiadomień.
Podczas rozwoju aplikacji Flutter warto zapisać osobno konfigurację launchera i powiadomień. Dzięki temu zmiana kolorowego logo nie nadpisze przypadkowo jednobarwnego symbolu używanego przez system.
5. Sprawdź nowo wysłane powiadomienie
Zbuduj i uruchom wersję aplikacji z nowym zasobem, a następnie wyślij nowe powiadomienie tą samą ścieżką, która wcześniej dawała zły wynik. Obejrzyj mały symbol na pasku i w panelu powiadomień. Duża grafika lub awatar w treści powiadomienia nie są potwierdzeniem poprawności small icon.
Jeśli błąd pozostał, wróć do trzech pytań: czy PNG ma przezroczyste otoczenie, czy kod wskazuje właściwą nazwę i czy na urządzeniu działa właściwy wariant aplikacji? Zachowaj prosty symbol testowy do czasu wyjaśnienia problemu. Dopiero wtedy wróć do bardziej szczegółowego znaku i oceń jego czytelność w małym rozmiarze.
Dokumentacja do dalszej pracy
Instrukcje wdrożeniowe dobierz do wersji używanej w swoim projekcie. Poniższe źródła rozwijają opisane zagadnienia.