Sobes.tech
Junior

Czym są px, dp i sp w kontekście rozwoju Androida?

sobes.tech AI

Odpowiedź od AI

  • px (piksele): Piksele na ekranie. To rzeczywiste punkty, z których składa się wyświetlacz. Rozmiar w px będzie zależał od gęstości ekranu. Na urządzeniach o różnej gęstości ten sam rozmiar w px zajmie inną fizyczną powierzchnię.

  • dp (piksele niezależne od gęstości): Piksele niezależne od gęstości. Jednostka miary oparta na fizycznym rozmiarze ekranu. dp zapewnia taki sam fizyczny rozmiar elementów UI na ekranach o różnych gęstościach. 160 dp to mniej więcej 1 cal na ekranie średniej gęstości (mdpi). Framework Android skalibruje dp zgodnie z gęstością urządzenia.

  • sp (skalowalne niezależne od rozmiaru piksele): Piksele niezależne od skalowania. Podobne do dp, ale dodatkowo skalowane w zależności od ustawień czcionki użytkownika (np. rozmiar czcionki w ustawieniach systemowych). Zaleca się używanie sp do określania rozmiaru tekstu.

Przykład użycia w XML:

<TextView  
    android:layout_width="match_parent"  
    android:layout_height="wrap_content"  
    android:textSize="16sp"  // Rozmiar tekstu w sp
    android:padding="8dp" /> // Marginesy w dp

<ImageView  
    android:layout_width="50dp"  // Szerokość obrazu w dp
    android:layout_height="50dp"  /> // Wysokość obrazu w dp

Tabela podsumowująca:

Jednostka Przeznaczenie Skalowana od Zalecane do
px Fizyczny piksel - Niezalecane
dp Niezależny od gęstości piksel Gęstość ekranu Elementy UI
sp Niezależny od skalowania i rozmiaru czcionki Gęstość ekranu i rozmiar czcionki Tekst