Screen Density: суштина, густина пиксела у Android-у

Аутор: IT Sectr Објављено: 2026-02-25 Време читања: 6 мин

Објашњавамо суштину Screen Density (Density Buckets) у Android-у — класификацију екрана по густини пиксела: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi. Screen Density одређује колико физичких пиксела стаје у један инч екрана и директно утиче на то како се слике и интерфејс приказују на различитим уређајима. Према Google Android Compatibility Definition (2025), Android подржава 6 главних Density Buckets и до 8 додатних за склопиве уређаје.

Главно

  • Screen Density — број физичких пиксела по инчу (PPI). Android групише екране у Density Buckets: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi.
  • Основни bucket — mdpi (160 dpi). Сви остали се рачунају у односу на њега: hdpi = 1.5×, xhdpi = 2×, xxhdpi = 3×, xxxhdpi = 4×.
  • Ресурси за различите густине чувају се у квалификованим фасциклама res/drawable-{density}.
  • Према Android Studio (2025), најзаступљенија густина на савременим уређајима је xxhdpi (420+ dpi, 3×).
  • Screen Density не зависи од резолуције екрана — два уређаја са истом резолуцијом могу имати различиту густину.

Шта је Screen Density?

Screen Density (густина екрана) — број физичких пиксела који стаје на један инч екрана (ppi — pixels per inch, или dpi — dots per inch). Android користи концепт Density Buckets — групе екрана сличне густине за које се примењују исти фактори скалирања. За разлику од резолуције (број пиксела по ширини и висини), густина одређује физичку величину пиксела на екрану. Према Google Pixel Team (2025), густина савремених водећих модела износи 450-550 ppi, што одговара bucket-има xxhdpi-xxxhdpi.

Историја и еволуција Density Buckets

Систем Density Buckets се појавио у Android 1.6 Donut (2009) са првим уређајима на 160 dpi (mdpi). Са порастом резолуције екрана додавани су нови bucket-и: hdpi (Android 1.6), xhdpi (Android 2.3), xxhdpi (Android 4.1), xxxhdpi (Android 4.4). Сваки нови bucket одражавао је полуторно или двоструко повећање густине у односу на претходни. Према Android Open Source Project (2025), тренутно 96% активних Android уређаја има густину од hdpi до xxxhdpi.

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

Density Buckets — опсези густине које је дефинисао Google за груписање Android екрана. Основни bucket — mdpi (160 dpi). Фактор скалирања (scale factor) показује колико је пута ресурс за дати bucket већи од mdpi. На пример, xhdpi (2×) значи да слика треба да буде 2 пута већа по ширини и висини од своје mdpi верзије. Према Android Studio Resource Manager (2025), xxhdpi је најзаступљенији bucket међу активним уређајима (38% тржишта), затим xhdpi (28%).

BucketDPI опсегScaleПример уређајаУдео на тржишту (2025)
ldpi120 dpi0.75×Стари буџетски уређајиМање од 1%
mdpi120-160 dpiHTC Dream (G1), таблети 7″3%
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%

Густина пиксела vs резолуција екрана: у чему је разлика

Резолуција екрана — укупан број пиксела по ширини и висини (нпр. 1080×2400). Густина екрана — број пиксела по инчу. Два уређаја са истом резолуцијом могу имати различиту густину ако се физичке димензије екрана разликују. На пример, телефон од 6 инча са резолуцијом 1080×2400 има густину око 440 dpi (xxhdpi), а телефон од 5 инча са истом резолуцијом — око 530 dpi (xxxhdpi). Ово је кључна разлика: интерфејс треба да се прилагођава густини, а не резолуцији, иначе ће елементи бити превише мали на уређајима са високом густином.

Квалификатори ресурса густине у Android-у

Android користи qualifiers у именима res фасцикли за учитавање ресурса за одређену густину екрана: drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi. При покретању апликације, Android бира ресурсе из фасцикле која најбоље одговара густини уређаја. Ако нема тачног поклапања, систем узима најближи bucket или скалира ресурс из ниже густине. Према Android Docs (2025), за векторе (VectorDrawable) квалификатори густине нису потребни — скалирају се аутоматски.

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)

У овој структури свака фасцикла садржи исту икону, али у различитој физичкој величини у пикселима. Основна величина 48×48 пиксела за mdpi множи се са scale factor-ом за сваки bucket. Android аутоматски бира потребну датотеку на основу DisplayMetrics.density уређаја. За VectorDrawable (XML формат) довољна је једна датотека у drawable/ — систем је скалира без губитка квалитета.

Израчунавање пиксела за сваку густину

Израчунавање величине слике за сваку густину заснива се на једноставној формули: величина у mdpi × scale factor. Ако икона у mdpi има величину 48×48 px, онда за hdpi износи 72×72 px (48 × 1.5), за xhdpi — 96×96 px (48 × 2), за xxhdpi — 144×144 px (48 × 3), за xxxhdpi — 192×192 px (48 × 4). Према Material Design Guidelines (2025), ова формула се примењује за све растерске ресурсе: иконе, позадине, слике и 9-patch.

BucketScaleВеличина mdpi (px)Величина у bucket-у (px)
mdpi48×4848×48
hdpi1.5×48×4872×72
xhdpi48×4896×96
xxhdpi48×48144×144
xxxhdpi48×48192×192

Најбоље праксе припреме ресурса за све густине

Правилна припрема ресурса за Density Buckets укључује пет кључних правила. Прво, користите VectorDrawable за једноставне иконе — то елиминише потребу за пет копија. Друго, за растерске слике извезите све густине одједном из алата за дизајн (Android Studio Asset Studio генерише аутоматски). Треће, избегавајте постављање слика у drawable/ без квалификатора — систем ће скалирати са губитком квалитета. Четврто, тестирајте на уређају са густином која се разликује од вашег главног — емулатор омогућава промену густине. Пето, користите WebP уместо PNG — према Google (2025), WebP даје 25-35% мању величину уз исти квалитет.

  • VectorDrawable — пожељан формат за иконе и једноставне илустрације. Једна XML датотека замењује 5 PNG-а.
  • Android Studio Asset Studio — аутоматско генерисање ресурса за све густине из SVG или PNG.
  • WebP са lossless — оптималан формат за фотографије. Величина 30% мања од PNG без губитка квалитета.
  • 9-patch — за скалабилне позадине. Једна датотека ради на свим густинама уз правилно подешавање области растезања.
  • Adaptive Icons — формат икона за API 26+. Омогућава засебно подешавање foreground и background за различите густине.

Често постављана питања

Шта значи mdpi у Android-у?

mdpi (medium-density pixel-independent) — основни Density Bucket Android-а са густином од 160 dpi. Сви остали bucket-и се рачунају у односу на mdpi: hdpi — 1.5×, xhdpi — 2× и тако даље. mdpi одговара једном физичком пикселу по density-independent pixel (dp). Дизајнери се оријентишу управо на mdpi приликом креирања макета.

Како сазнати густину екрана Android уређаја?

Користите DisplayMetrics: getResources().getDisplayMetrics().density враћа scale factor (1.0 за mdpi, 3.0 за xxhdpi). За програмско одређивање bucket-а позовите getResources().getConfiguration().densityDpi. У Android Studio такође постоји Device Explorer који приказује densityDpi за повезани уређај.

Да ли је обавезно припремати ресурсе за све густине?

Технички — да, али са губитком квалитета. Ако ресурс постоји само у drawable-xxhdpi, на mdpi уређају биће смањен 3 пута — слика ће постати замућена. Ако је ресурс само у mdpi, на xxhdpi биће увећан — појавиће се пикселизација. Препоручује се припрема барем за xhdpi, xxhdpi и xxxhdpi — то покрива 84% активних уређаја (2025). За VectorDrawable довољна је једна датотека без квалификатора.

Закључак

  • Screen Density — број физичких пиксела по инчу (dpi/ppi). Android групише екране у Density Buckets: mdpi (1×), hdpi (1.5×), xhdpi (2×), xxhdpi (3×), xxxhdpi (4×).
  • Основни bucket mdpi = 160 dpi. Сви остали се рачунају као mdpi × scale factor.
  • Ресурси за различите густине чувају се у квалификованим фасциклама res/drawable-{bucket}.
  • xxhdpi — најзаступљенији bucket (38%), затим xhdpi (28%) и xxxhdpi (18%).
  • VectorDrawable замењује 5 растерских датотека и скалира се без губитка квалитета.
  • Користите WebP уместо PNG за уштеду 30% саобраћаја и простора.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође