Sobes.tech
Junior

Co jsou px, dp a sp v kontextu vývoje Androidu?

sobes.tech AI

Odpověď od AI

  • px (pixel): Pixely na obrazovce. Jsou to skutečné body, ze kterých se skládá displej. Velikost v px závisí na hustotě obrazovky. Na zařízeních s různou hustotou zabere stejná velikost v px různou fyzickou plochu.

  • dp (nezávislé na hustotě pixely): Pixely nezávislé na hustotě. Měřítková jednotka založená na fyzické velikosti obrazovky. dp zajišťuje stejnou fyzickou velikost prvků UI na obrazovkách s různou hustotou. 160 dp je přibližně 1 palec na obrazovce střední hustoty (mdpi). Android framework škáluje dp podle hustoty zařízení.

  • sp (škálovatelné nezávislé pixely): Pixely nezávislé na měřítku. Podobné jako dp, ale navíc se škálují podle nastavení písma uživatele (například velikost písma v systémových nastaveních). Doporučuje se používat sp pro nastavení velikosti textu.

Příklad použití v XML:

<TextView  
    android:layout_width="match_parent"  
    android:layout_height="wrap_content"  
    android:textSize="16sp"  // Velikost textu v sp
    android:padding="8dp" /> // Okraje v dp

<ImageView  
    android:layout_width="50dp"  // Šířka obrázku v dp
    android:layout_height="50dp"  /> // Výška obrázku v dp

Souhrnná tabulka:

Jednotka Účel Škáluje od Doporučeno pro
px Fyzický pixel - Nedoporučuje se
dp Nezávislý na hustotě pixel Hustota obrazovky UI prvky
sp Škálovatelný nezávislý pixel pro text Hustota obrazovky a velikost písma Text