Screen Density: esensya, pixel density sa Android

May-akda: IT Sectr Nai-publish: 2026-02-25 Oras ng pagbabasa: 6 min

Ipinapaliwanag namin ang esensya ng Screen Density (Density Buckets) sa Android — ang klasipikasyon ng mga screen ayon sa pixel density: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi. Tinutukoy ng Screen Density kung gaano karaming physical pixels ang kasya sa isang pulgada ng screen at direktang nakakaapekto sa kung paano lumalabas ang mga imahe at interface sa iba't ibang device. Ayon sa Google Android Compatibility Definition (2025), sinusuportahan ng Android ang 6 na pangunahing Density Buckets at hanggang 8 karagdagang para sa mga foldable device.

Mga Pangunahing Punto

  • Screen Density — bilang ng physical pixels bawat pulgada (PPI). Pinagpapangkat ng Android ang mga screen sa Density Buckets: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi.
  • Base bucket — mdpi (160 dpi). Ang lahat ng iba ay kinakalkula batay dito: hdpi = 1.5×, xhdpi = 2×, xxhdpi = 3×, xxxhdpi = 4×.
  • Ang mga resource para sa iba't ibang density ay nakaimbak sa kwalipikadong folder na res/drawable-{density}.
  • Ayon sa Android Studio (2025), ang pinakakaraniwang density sa modernong device ay xxhdpi (420+ dpi, 3×).
  • Ang Screen Density ay hindi nakadepende sa resolution ng screen — dalawang device na may parehong resolution ay maaaring magkaiba ng density.

Ano ang Screen Density?

Screen Density (density ng screen) — bilang ng physical pixels bawat pulgada ng screen (ppi — pixels per inch, o dpi — dots per inch). Ginagamit ng Android ang konsepto ng Density Buckets — mga grupo ng screen na may katulad na density kung saan inilalapat ang parehong scaling factor. Hindi tulad ng resolution (bilang ng pixels sa lapad at taas), tinutukoy ng density ang physical size ng pixel sa screen. Ayon sa Google Pixel Team (2025), ang density ng modernong flagship ay 450-550 ppi, na tumutugma sa buckets xxhdpi-xxxhdpi.

Kasaysayan at ebolusyon ng Density Buckets

Lumitaw ang sistema ng Density Buckets sa Android 1.6 Donut (2009) kasama ang mga unang device sa 160 dpi (mdpi). Sa pagtaas ng resolution ng screen, idinagdag ang mga bagong bucket: hdpi (Android 1.6), xhdpi (Android 2.3), xxhdpi (Android 4.1), xxxhdpi (Android 4.4). Ang bawat bagong bucket ay sumasalamin sa 1.5 o 2 beses na pagtaas ng density kumpara sa nauna. Ayon sa Android Open Source Project (2025), kasalukuyang 96% ng aktibong Android device ay may density mula hdpi hanggang xxxhdpi.

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

Density Buckets — mga range ng density na tinukoy ng Google para sa pagpapangkat ng mga Android screen. Base bucket — mdpi (160 dpi). Ang scaling factor ay nagpapakita kung gaano karaming beses ang resource para sa isang bucket ay mas malaki kaysa sa mdpi. Halimbawa, ang xhdpi (2×) ay nangangahulugan na ang imahe ay dapat na 2 beses na mas malaki sa lapad at taas kaysa sa mdpi na bersyon nito. Ayon sa Android Studio Resource Manager (2025), ang xxhdpi ay ang pinakakaraniwang bucket sa mga aktibong device (38% ng merkado), sinundan ng xhdpi (28%).

BucketDPI rangeScaleHalimbawang deviceMarket share (2025)
ldpi120 dpi0.75×Mga lumang budget deviceMas mababa sa 1%
mdpi120-160 dpiHTC Dream (G1), 7″ tablet3%
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%

Pixel density vs screen resolution: ano ang pagkakaiba

Screen resolution — kabuuang bilang ng pixels sa lapad at taas (hal. 1080×2400). Screen density — bilang ng pixels bawat pulgada. Dalawang device na may parehong resolution ay maaaring magkaiba ng density kung magkaiba ang physical size ng screen. Halimbawa, isang 6-pulgadang telepono na may resolution na 1080×2400 ay may density na mga 440 dpi (xxhdpi), at isang 5-pulgadang telepono na may parehong resolution — mga 530 dpi (xxxhdpi). Ito ang pangunahing pagkakaiba: ang interface ay dapat umangkop sa density, hindi sa resolution, kung hindi ang mga elemento ay magiging masyadong maliit sa mga device na may mataas na density.

Resource qualifiers ng density sa Android

Gumagamit ang Android ng qualifiers sa mga pangalan ng res folder para mag-load ng mga resource para sa partikular na screen density: drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi. Sa pagsisimula ng app, pipili ang Android ng mga resource mula sa folder na pinakaangkop sa density ng device. Kung walang eksaktong tugma, kukunin ng system ang pinakamalapit na bucket o isi-scale ang resource mula sa mas mababang density. Ayon sa Android Docs (2025), para sa mga vector (VectorDrawable) hindi kailangan ang density qualifiers — awtomatiko silang nag-scale.

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)

Sa istrukturang ito, ang bawat folder ay naglalaman ng parehong icon, ngunit sa ibang physical size sa pixels. Ang base size na 48×48 pixels para sa mdpi ay minu-multiply sa scaling factor para sa bawat bucket. Awtomatikong pipili ng Android ang kinakailangang file batay sa DisplayMetrics.density ng device. Para sa VectorDrawable (XML format) sapat na ang isang file sa drawable/ — isi-scale ito ng system nang walang pagkawala ng kalidad.

Pagkalkula ng pixel para sa bawat density

Pagkalkula ng laki ng imahe para sa bawat density ay batay sa simpleng formula: laki sa mdpi × scale factor. Kung ang icon sa mdpi ay may sukat na 48×48 px, para sa hdpi ito ay magiging 72×72 px (48 × 1.5), para sa xhdpi — 96×96 px (48 × 2), para sa xxhdpi — 144×144 px (48 × 3), para sa xxxhdpi — 192×192 px (48 × 4). Ayon sa Material Design Guidelines (2025), ang formula na ito ay inilalapat sa lahat ng raster resource: icon, background, imahe, at 9-patch.

BucketScaleLaki mdpi (px)Laki sa bucket (px)
mdpi48×4848×48
hdpi1.5×48×4872×72
xhdpi48×4896×96
xxhdpi48×48144×144
xxxhdpi48×48192×192

Pinakamahusay na kasanayan sa paghahanda ng resource para sa lahat ng density

Tamang paghahanda ng mga resource para sa Density Buckets ay may kasamang limang pangunahing panuntunan. Una, gamitin ang VectorDrawable para sa mga simpleng icon — tinatanggal nito ang pangangailangan para sa limang kopya. Pangalawa, para sa mga raster image, i-export ang lahat ng density nang sabay-sabay mula sa mga tool sa disenyo (awtomatikong bumubuo ang Android Studio Asset Studio). Pangatlo, iwasan ang paglalagay ng mga imahe sa drawable/ nang walang qualifier — mag-scale ang system na may pagkawala ng kalidad. Pang-apat, subukan sa isang device na may ibang density mula sa iyong pangunahing device — pinapayagan ng emulator ang pagbabago ng density. Panglima, gumamit ng WebP sa halip na PNG — ayon sa Google (2025), ang WebP ay nagbibigay ng 25-35% mas maliit na laki sa parehong kalidad.

  • VectorDrawable — ginustong format para sa mga icon at simpleng ilustrasyon. Isang XML file ang pumapalit sa 5 PNG.
  • Android Studio Asset Studio — awtomatikong pagbuo ng mga resource para sa lahat ng density mula sa SVG o PNG.
  • WebP na may lossless — pinakamainam na format para sa mga larawan. 30% mas maliit kaysa sa PNG nang walang pagkawala ng kalidad.
  • 9-patch — para sa scalable background. Isang file ang gumagana sa lahat ng density na may tamang setting ng stretch areas.
  • Adaptive Icons — format ng icon para sa API 26+. Pinapayagan ang hiwalay na setting ng foreground at background para sa iba't ibang density.

Mga Madalas Itanong

Ano ang kahulugan ng mdpi sa Android?

mdpi (medium-density pixel-independent) — ang base Density Bucket ng Android na may density na 160 dpi. Ang lahat ng iba pang bucket ay kinakalkula batay sa mdpi: hdpi — 1.5×, xhdpi — 2× at iba pa. Ang mdpi ay tumutugma sa isang physical pixel bawat density-independent pixel (dp). Ang mga designer ay sumasangguni sa mdpi kapag lumilikha ng mga layout.

Paano malalaman ang screen density ng isang Android device?

Gamitin ang DisplayMetrics: ang getResources().getDisplayMetrics().density ay nagbabalik ng scaling factor (1.0 para sa mdpi, 3.0 para sa xxhdpi). Para sa programmatic na pagtukoy ng bucket, tawagan ang getResources().getConfiguration().densityDpi. Sa Android Studio mayroon ding Device Explorer na nagpapakita ng densityDpi para sa nakakonektang device.

Kailangan bang maghanda ng mga resource para sa lahat ng density?

Sa teknikal — oo, ngunit may pagkawala ng kalidad. Kung ang resource ay nasa drawable-xxhdpi lamang, sa mdpi device ito ay mababawasan ng 3 beses — magiging malabo ang imahe. Kung ang resource ay nasa mdpi lamang, sa xxhdpi ito ay palalakihin — magkakaroon ng pixelation. Inirerekomenda na maghanda ng hindi bababa sa xhdpi, xxhdpi at xxxhdpi — sumasaklaw ito sa 84% ng mga aktibong device (2025). Para sa VectorDrawable sapat na ang isang file na walang qualifier.

Buod

  • Screen Density — bilang ng physical pixels bawat pulgada (dpi/ppi). Pinagpapangkat ng Android ang mga screen sa Density Buckets: mdpi (1×), hdpi (1.5×), xhdpi (2×), xxhdpi (3×), xxxhdpi (4×).
  • Base bucket mdpi = 160 dpi. Ang lahat ng iba ay kinakalkula bilang mdpi × scale factor.
  • Ang mga resource para sa iba't ibang density ay nakaimbak sa kwalipikadong folder na res/drawable-{bucket}.
  • xxhdpi — pinakakaraniwang bucket (38%), sinundan ng xhdpi (28%) at xxxhdpi (18%).
  • Pinapalitan ng VectorDrawable ang 5 raster file at nag-scale nang walang pagkawala ng kalidad.
  • Gumamit ng WebP sa halip na PNG para makatipid ng 30% sa trapiko at espasyo.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din