Piksele niezależne od gęstości (dp) i piksele skalowalne (sp) są niezbędne do tworzenia układów i wyświetlania czcionek, które reagują w jednolity sposób na szeroki zakres gęstości ekranu, klas rozmiarów, formatów i proporcji, które składają się na urządzenia z Androidem.
Wnioski
- Jeśli używasz siatki linii bazowych, trzymaj się wartości 4 i 8.
- Podawaj specyfikacje w pikselach dp i sp, a nie w pikselach.
- Eksportuj grafikę bitmapową/rastrową dla wszystkich zasobników.
- Projektuj z myślą o elastyczności, uwzględniając różne klasy rozmiarów, rozdzielczości i formaty obrazu.
- Piksele niezależne od gęstości (dp): piksele niezależne od gęstości to elastyczne jednostki, które są skalowane tak, aby miały jednolite wymiary na każdym ekranie. Są one oparte na fizycznej gęstości ekranu. Te jednostki są względne w stosunku do ekranu o rozdzielczości 160 dpi (punktów na cal), na którym 1 dp jest w przybliżeniu równy 1 px.
- Piksele skalowalne (sp): piksele skalowalne pełnią tę samą funkcję co dp, ale w przypadku czcionek. Wartość domyślna parametru sp jest taka sama jak wartość domyślna parametru dp. System Android oblicza rzeczywisty rozmiar czcionki na podstawie urządzenia i ustawień użytkownika w aplikacji Ustawienia na urządzeniu z Androidem.

Podstawowa różnica między tymi jednostkami miary polega na tym, że skalowalne piksele zachowują ustawienia czcionki użytkownika. Użytkownicy, którzy mają większe ustawienia tekstu ze względu na ułatwienia dostępu, widzą rozmiary czcionek zgodne z ich preferencjami. Dowiedz się, jak zmienić rozmiar czcionki w Komponowaniu.
Android używa tych jednostek, aby skalować i tłumaczyć treści na różne urządzenia i rozdzielczości.
Zasobniki gęstości
Ekrany o dużej gęstości mają więcej pikseli na cal niż ekrany o małej gęstości. W rezultacie elementy interfejsu o tych samych wymiarach w pikselach są większe na ekranach o niskiej gęstości, a mniejsze na ekranach o wysokiej gęstości. Dlatego nie należy deklarować pomiarów w pikselach.
Android grupuje zakresy gęstości ekranu w „przedziały” i używa ich do dostarczania na urządzenie optymalnego zestawu komponentów. Najczęściej używane przedziały gęstości to mdpi
, hdpi
, xhdpi
, xxhdpi
i xxxhdpi
(nodpi
i anydpi
odnoszą się do przedziału, który nie jest skalowany w zależności od rozdzielczości urządzenia, i jest zwykle używany w przypadku rysunków wektorowych). Każdy z nich odpowiada plikowi zasobów aplikacji.

Aby obliczyć dp:
dp = (szerokość w pikselach * 160) / gęstość ekranu
Siatki
Siatka linii bazowych
Korzystanie z siatki bazowej pomaga zachować spójne odstępy i wyrównanie w interfejsie. Interfejs Androida wykorzystuje siatkę 8 dp do określania układu, komponentów i odstępów.
Mniejsze elementy, takie jak ikony, tekst i niektóre elementy w komponentach, najlepiej wyrównać do siatki 4 dp.

Siatka kolumn
Kolumny tworzą strukturę siatki, która zapewnia pionową definicję układu, dzieląc treść w obszarze treści. Treści są umieszczane w obszarach ekranu, które zawierają kolumny. Wyrównaj do siatki bazowej, aby wyrównać treść, ale zachowaj elastyczne rozmiary. Poznaj podstawy konfigurowania siatki kolumn i stosowania treści w sekcji Podstawy układu.

Szczegółowe informacje o tworzeniu elastycznych układów na różnych urządzeniach znajdziesz na stronie Układy kanoniczne w Material 3.
Klasy rozmiarów
Klasy rozmiarów okien to zestaw opartych na opiniach punktów przerwania widocznego obszaru, które pomagają projektować, tworzyć i testować elastyczne i adaptacyjne układy aplikacji. Android dzieli klasy rozmiarów okien na 3 kategorie: kompaktowe, średnie i rozszerzone. Więcej informacji znajdziesz w artykule Klasy rozmiarów okien.
Formaty obrazu
Współczynnik proporcji to stosunek szerokości elementu do jego wysokości. Współczynniki proporcji są zapisywane w formacie szerokość:wysokość.
Aby zachować spójność układu, używaj spójnych proporcji elementów, takich jak obrazy, powierzchnie i rozmiar ekranu.
W interfejsie zalecamy stosowanie tych formatów obrazu:
- 16:9
- 3:2
- 4:3
- 1:1
- 3:4
- 2:3