Screen Density: lényeg, pixelsűrűség Androidban

Szerző: IT Sectr Megjelenés: 2026-02-25 Olvasási idő: 6 perc

Elmagyarázzuk a Screen Density (Density Buckets) lényegét Androidban — a képernyők pixelsűrűség szerinti osztályozását: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi. A Screen Density meghatározza, hogy hány fizikai pixel fér el egy hüvelyknyi képernyőn, és közvetlenül befolyásolja, hogy a képek és a felület hogyan jelennek meg a különböző eszközökön. A Google Android Compatibility Definition (2025) szerint az Android 6 fő Density Buckets-et és további 8-at támogat a hajlítható eszközökhöz.

Főbb pontok

  • Screen Density — a fizikai képpontok száma hüvelykenként (PPI). Az Android a képernyőket Density Buckets csoportokba sorolja: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi.
  • Az alap bucket — mdpi (160 dpi). Az összes többi ehhez viszonyítva számítódik: hdpi = 1.5×, xhdpi = 2×, xxhdpi = 3×, xxxhdpi = 4×.
  • A különböző sűrűségekhez tartozó erőforrások a res/drawable-{density} minősített mappákban tárolódnak.
  • Az Android Studio (2025) szerint a modern eszközökön a leggyakoribb sűrűség az xxhdpi (420+ dpi, 3×).
  • A Screen Density nem függ a képernyő felbontásától — két azonos felbontású eszköz eltérő sűrűséggel rendelkezhet.

Mi az a Screen Density?

Screen Density (képernyősűrűség) — a fizikai képpontok száma egy hüvelyknyi képernyőn (ppi — pixels per inch, vagy dpi — dots per inch). Az Android a Density Buckets koncepcióját használja — hasonló sűrűségű képernyők csoportjait, amelyekre ugyanazok a skálázási tényezők vonatkoznak. A felbontástól (a képpontok száma szélességben és magasságban) eltérően a sűrűség határozza meg a képpont fizikai méretét a képernyőn. A Google Pixel Team (2025) szerint a modern zászlóshajók sűrűsége 450-550 ppi, ami az xxhdpi-xxxhdpi bucket-eknek felel meg.

A Density Buckets története és fejlődése

A Density Buckets rendszer az Android 1.6 Donut (2009) verzióval jelent meg az első 160 dpi (mdpi) sűrűségű eszközökkel. A képernyőfelbontás növekedésével új bucket-ek kerültek hozzáadásra: hdpi (Android 1.6), xhdpi (Android 2.3), xxhdpi (Android 4.1), xxxhdpi (Android 4.4). Minden új bucket 1.5-szeres vagy kétszeres sűrűségnövekedést tükrözött az előzőhöz képest. Az Android Open Source Project (2025) szerint jelenleg az aktív Android-eszközök 96%-ának sűrűsége hdpi és xxxhdpi között van.

Density Buckets: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi

Density Buckets — a Google által az Android-képernyők csoportosítására meghatározott sűrűségtartományok. Az alap bucket — mdpi (160 dpi). A skálázási tényező (scale factor) megmutatja, hogy egy adott bucket erőforrása hányszor nagyobb az mdpi-nél. Például az xhdpi (2×) azt jelenti, hogy a képnek 2-szer szélesebbnek és magasabbnak kell lennie, mint az mdpi verziója. Az Android Studio Resource Manager (2025) szerint az xxhdpi a leggyakoribb bucket az aktív eszközök között (38% piaci részesedés), ezt követi az xhdpi (28%).

BucketDPI tartományScalePélda eszközPiaci részesedés (2025)
ldpi120 dpi0.75×Régi budget eszközökKevesebb mint 1%
mdpi120-160 dpiHTC Dream (G1), 7″ táblagépek3%
hdpi160-240 dpi1.5×Samsung Galaxy S2, Nexus 412%
xhdpi240-320 dpiGoogle Nexus 5, Moto G28%
xxhdpi320-480 dpiSamsung Galaxy S8, Pixel 338%
xxxhdpi480-640 dpiSamsung Galaxy S24 Ultra, Pixel 9 Pro18%

Pixelsűrűség vs képernyőfelbontás: mi a különbség

Képernyőfelbontás — a képpontok teljes száma szélességben és magasságban (pl. 1080×2400). Képernyősűrűség — a képpontok száma hüvelykenként. Két azonos felbontású eszköz eltérő sűrűséggel rendelkezhet, ha a képernyő fizikai mérete eltérő. Például egy 6 hüvelykes telefon 1080×2400 felbontással körülbelül 440 dpi (xxhdpi) sűrűségű, míg egy 5 hüvelykes ugyanazzal a felbontással körülbelül 530 dpi (xxxhdpi) sűrűségű. Ez a kulcsfontosságú különbség: a felületnek a sűrűséghez kell igazodnia, nem a felbontáshoz, különben az elemek túl kicsik lesznek a nagy sűrűségű eszközökön.

Sűrűségi erőforrás-kvalifikátorok Androidban

Az Android qualifiers használ a res mappák neveiben az adott képernyősűrűséghez tartozó erőforrások betöltéséhez: drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi. Az alkalmazás indításakor az Android a készülék sűrűségéhez legjobban illő mappából választja ki az erőforrásokat. Ha nincs pontos egyezés, a rendszer a legközelebbi bucket-et veszi, vagy alacsonyabb sűrűségről skálázza az erőforrást. Az Android Docs (2025) szerint a vektorokhoz (VectorDrawable) nincs szükség sűrűségi kvalifikátorokra — automatikusan skálázódnak.

XML

/res/
    drawable-mdpi/
        icon_app.png  (48x48 px)
    drawable-hdpi/
        icon_app.png  (72x72 px)
    drawable-xhdpi/
        icon_app.png  (96x96 px)
    drawable-xxhdpi/
        icon_app.png  (144x144 px)
    drawable-xxxhdpi/
        icon_app.png  (192x192 px)

Ebben a struktúrában minden mappa ugyanazt az ikont tartalmazza, de eltérő fizikai méretben képpontokban. Az mdpi alapmérete 48×48 pixel, amely minden bucket esetében megszorzódik a skálázási tényezővel. Az Android automatikusan kiválasztja a szükséges fájlt az eszköz DisplayMetrics.density értéke alapján. A VectorDrawable (XML formátum) esetében elegendő egy fájl a drawable/ mappában — a rendszer minőségveszteség nélkül skálázza.

Képpontok számítása minden sűrűséghez

Méretszámítás minden sűrűséghez egy egyszerű képleten alapul: méret mdpi-ben × scale factor. Ha az ikon mdpi-ben 48×48 px méretű, akkor hdpi esetén 72×72 px (48 × 1.5), xhdpi esetén 96×96 px (48 × 2), xxhdpi esetén 144×144 px (48 × 3), xxxhdpi esetén 192×192 px (48 × 4) lesz. A Material Design Guidelines (2025) szerint ez a képlet minden raszter erőforrásra vonatkozik: ikonokra, háttérképekre, képekre és 9-patch-re.

BucketScaleMdpi méret (px)Méret bucket-ben (px)
mdpi48×4848×48
hdpi1.5×48×4872×72
xhdpi48×4896×96
xxhdpi48×48144×144
xxxhdpi48×48192×192

Legjobb gyakorlatok az erőforrások előkészítéséhez minden sűrűséghez

Helyes előkészítés a Density Buckets-hez öt kulcsfontosságú szabályt foglal magában. Először is, használjon VectorDrawable-t egyszerű ikonokhoz — ez megszünteti az öt másolat szükségességét. Másodszor, raszteres képek esetén exportálja az összes sűrűséget egyszerre a tervezőeszközökből (az Android Studio Asset Studio automatikusan generálja). Harmadszor, kerülje a képek elhelyezését a drawable/ mappában kvalifikátor nélkül — a rendszer minőségvesztéssel skálázza. Negyedszer, teszteljen a sajátjától eltérő sűrűségű eszközön — az emulátor lehetővé teszi a sűrűség módosítását. Ötödször, használjon WebP-t PNG helyett — a Google (2025) szerint a WebP 25-35%-kal kisebb méretet biztosít azonos minőség mellett.

  • VectorDrawable — előnyben részesített formátum ikonokhoz és egyszerű illusztrációkhoz. Egy XML fájl 5 PNG-t helyettesít.
  • Android Studio Asset Studio — erőforrások automatikus generálása minden sűrűséghez SVG vagy PNG fájlból.
  • WebP lossless — optimális formátum fényképekhez. 30%-kal kisebb, mint a PNG, minőségveszteség nélkül.
  • 9-patch — skálázható hátterekhez. Egy fájl minden sűrűségen működik a nyújtási területek helyes beállításával.
  • Adaptive Icons — ikonformátum API 26+-hoz. Lehetővé teszi a foreground és background külön beállítását különböző sűrűségekhez.

Gyakran Ismételt Kérdések

Mit jelent az mdpi Androidban?

mdpi (medium-density pixel-independent) — az Android alap Density Bucket-je 160 dpi sűrűséggel. Az összes többi bucket az mdpi-hez viszonyítva számítódik: hdpi — 1.5×, xhdpi — 2× és így tovább. Az mdpi egy fizikai képpontnak felel meg density-independent pixelenként (dp). A tervezők az mdpi-hez igazodnak a layoutok létrehozásakor.

Hogyan tudhatom meg egy Android-eszköz képernyősűrűségét?

Használja a DisplayMetrics-et: a getResources().getDisplayMetrics().density visszaadja a skálázási tényezőt (1.0 mdpi-hez, 3.0 xxhdpi-hez). A bucket programozott meghatározásához hívja a getResources().getConfiguration().densityDpi-t. Az Android Studio-ban Device Explorer is található, amely megjeleníti a csatlakoztatott eszköz densityDpi értékét.

Kötelező erőforrásokat készíteni minden sűrűséghez?

Technikailag — igen, de minőségveszteséggel. Ha az erőforrás csak drawable-xxhdpi-ben létezik, mdpi eszközön 3-szor kisebbre csökken — a kép elmosódottá válik. Ha az erőforrás csak mdpi-ben van, xxhdpi-n felnagyításra kerül — pixelesedés jelenik meg. Javasolt legalább xhdpi, xxhdpi és xxxhdpi esetén előkészíteni — ez az aktív eszközök 84%-át lefedi (2025). A VectorDrawable esetében elegendő egyetlen fájl kvalifikátor nélkül.

Összefoglalás

  • Screen Density — a fizikai képpontok száma hüvelykenként (dpi/ppi). Az Android a képernyőket Density Buckets csoportokba sorolja: mdpi (1×), hdpi (1.5×), xhdpi (2×), xxhdpi (3×), xxxhdpi (4×).
  • Az alap bucket mdpi = 160 dpi. A többit mdpi × scale factorként számítjuk.
  • A különböző sűrűségekhez tartozó erőforrások a res/drawable-{bucket} minősített mappákban tárolódnak.
  • xxhdpi — a leggyakoribb bucket (38%), ezt követi xhdpi (28%) és xxxhdpi (18%).
  • A VectorDrawable 5 raszter fájlt helyettesít és minőségveszteség nélkül skálázódik.
  • Használjon WebP-t PNG helyett a 30% forgalom- és helymegtakarítás érdekében.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is