Screen Density: mahiyyəti, Android-də piksel sıxlığı

Müəllif: IT Sectr Dərc olunub: 2026-02-25 Oxuma vaxtı: 6 dəq

Android-də Screen Density (Density Buckets) anlayışının mahiyyətini — ekranların piksel sıxlığına görə təsnifatını izah edirik: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi. Screen Density ekranın bir düymündə neçə fiziki piksel yerləşdiyini müəyyən edir və şəkillərin və interfeysin müxtəlif cihazlarda necə göstəriləcəyinə birbaşa təsir edir. Google Android Compatibility Definition (2025) məlumatına görə, Android 6 əsas Density Buckets və qatlanan cihazlar üçün 8 əlavə bucketi dəstəkləyir.

Əsas məqamlar

  • Screen Density — düymdə fiziki piksellərin sayı (PPI). Android ekranları Density Buckets qruplarına ayırır: mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi.
  • Baza bucket — mdpi (160 dpi). Qalanların hamısı ona nisbətən hesablanır: hdpi = 1.5×, xhdpi = 2×, xxhdpi = 3×, xxxhdpi = 4×.
  • Müxtəlif sıxlıqlar üçün resurslar res/drawable-{density} kvalifikasiyalı qovluqlarında saxlanılır.
  • Android Studio (2025) məlumatına görə, müasir cihazlarda ən geniş yayılmış sıxlıq xxhdpi-dir (420+ dpi, 3×).
  • Screen Density ekranın rezolyusiyasından asılı deyil — eyni rezolyusiyaya malik iki cihaz fərqli sıxlığa sahib ola bilər.

Screen Density nədir?

Screen Density (ekran sıxlığı) — ekranın bir düymünə düşən fiziki piksellərin sayıdır (ppi — pixels per inch və ya dpi — dots per inch). Android Density Buckets anlayışından istifadə edir — oxşar sıxlığa malik ekran qrupları, onlar üçün eyni miqyaslama əmsalları tətbiq olunur. Rezolyusiyadan (en və hündürlükdə piksel sayı) fərqli olaraq, sıxlıq ekrandakı pikselin fiziki ölçüsünü müəyyən edir. Google Pixel Team (2025) məlumatına görə, müasir flaqmanların sıxlığı 450-550 ppi təşkil edir ki, bu da xxhdpi-xxxhdpi bucketlərinə uyğundur.

Density Buckets-in tarixi və təkamülü

Density Buckets sistemi Android 1.6 Donut (2009) ilə 160 dpi (mdpi) sıxlığına malik ilk cihazlarla ortaya çıxdı. Ekran rezolyusiyasının artması ilə yeni bucketlər əlavə edildi: hdpi (Android 1.6), xhdpi (Android 2.3), xxhdpi (Android 4.1), xxxhdpi (Android 4.4). Hər yeni bucket əvvəlkinə nisbətən 1.5 və ya 2 dəfə sıxlıq artımını əks etdirirdi. Android Open Source Project (2025) məlumatına görə, hazırda aktiv Android cihazlarının 96%-i hdpi-dən xxxhdpi-yə qədər sıxlığa malikdir.

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

Density Buckets — Google tərəfindən Android ekranlarını qruplaşdırmaq üçün müəyyən edilmiş sıxlıq diapazonlarıdır. Baza bucket — mdpi (160 dpi). Miqyaslama əmsalı (scale factor) göstərir ki, verilən bucket üçün resurs mdpi-dən neçə dəfə böyükdür. Məsələn, xhdpi (2×) o deməkdir ki, şəkil eni və hündürlüyü mdpi versiyasından 2 dəfə böyük olmalıdır. Android Studio Resource Manager (2025) məlumatına görə, xxhdpi aktiv cihazlar arasında ən geniş yayılmış bucketdir (38% bazar payı), ardınca xhdpi (28%).

BucketDPI diapazonuScaleNümunə cihazBazar payı (2025)
ldpi120 dpi0.75×Köhnə büdcə cihazları1%-dən az
mdpi120-160 dpiHTC Dream (G1), 7″ planşetlər3%
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%

Piksel sıxlığı vs ekran rezolyusiyası: fərq nədir

Ekran rezolyusiyası — en və hündürlükdəki piksellərin ümumi sayıdır (məsələn, 1080×2400). Ekran sıxlığı — düymdə piksel sayıdır. Eyni rezolyusiyaya malik iki cihaz, ekranın fiziki ölçüləri fərqlidirsə, müxtəlif sıxlığa sahib ola bilər. Məsələn, 6 düymlük telefon 1080×2400 rezolyusiyası ilə təxminən 440 dpi (xxhdpi) sıxlığa, eyni rezolyusiyalı 5 düymlük telefon isə təxminən 530 dpi (xxxhdpi) sıxlığa malikdir. Bu əsas fərqdir: interfeys rezolyusiyaya deyil, sıxlığa uyğunlaşmalıdır, əks halda yüksək sıxlıqlı cihazlarda elementlər çox kiçik olacaq.

Android-də sıxlıq resurs kvalifikatorları

Android res qovluqlarının adlarında müəyyən ekran sıxlığı üçün resursları yükləmək üçün qualifiers istifadə edir: drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi. Tətbiq işə düşəndə Android cihazın sıxlığına ən uyğun qovluqdan resursları seçir. Dəqiq uyğunluq yoxdursa, sistem ən yaxın bucketi götürür və ya aşağı sıxlıqdan resursu miqyaslayır. Android Docs (2025) məlumatına görə, vektorlar (VectorDrawable) üçün sıxlıq kvalifikatorları lazım deyil — onlar avtomatik miqyaslanır.

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)

Bu strukturda hər qovluq eyni ikonanı ehtiva edir, lakin müxtəlif fiziki piksel ölçüsündə. mdpi üçün əsas ölçü 48×48 piksel hər bucket üçün scale factor-a vurulur. Android cihazın DisplayMetrics.density əsasında avtomatik olaraq lazımi faylı seçir. VectorDrawable (XML formatı) üçün drawable/ qovluğunda bir fayl kifayətdir — sistem keyfiyyət itkisi olmadan miqyaslayır.

Hər sıxlıq üçün piksel hesablanması

Ölçü hesablanması hər sıxlıq üçün sadə düstura əsaslanır: mdpi-də ölçü × scale factor. mdpi-də ikona 48×48 px ölçüsündədirsə, hdpi üçün 72×72 px (48 × 1.5), xhdpi üçün 96×96 px (48 × 2), xxhdpi üçün 144×144 px (48 × 3), xxxhdpi üçün 192×192 px (48 × 4) olacaq. Material Design Guidelines (2025) məlumatına görə, bu düstur bütün rastr resurslarına tətbiq olunur: ikonalar, fonlar, şəkillər və 9-patch.

BucketScalemdpi ölçüsü (px)Bucket-də ölçü (px)
mdpi48×4848×48
hdpi1.5×48×4872×72
xhdpi48×4896×96
xxhdpi48×48144×144
xxxhdpi48×48192×192

Bütün sıxlıqlar üçün resurs hazırlığının ən yaxşı təcrübələri

Düzgün hazırlıq Density Buckets üçün beş əsas qaydanı əhatə edir. Birincisi, sadə ikonalar üçün VectorDrawable istifadə edin — bu, beş nüsxəyə ehtiyacı aradan qaldırır. İkincisi, rastr şəkilləri üçün dizayn alətlərindən bütün sıxlıqları bir dəfəyə ixrac edin (Android Studio Asset Studio avtomatik yaradır). Üçüncüsü, şəkilləri kvalifikatorsuz drawable/ qovluğuna yerləşdirməkdən çəkinin — sistem keyfiyyət itkisi ilə miqyaslayacaq. Dördüncüsü, əsas cihazınızdan fərqli sıxlıqlı cihazda sınaq keçirin — emulator sıxlığı dəyişməyə imkan verir. Beşincisi, PNG əvəzinə WebP istifadə edin — Google (2025) məlumatına görə, WebP eyni keyfiyyətdə 25-35% daha kiçik ölçü verir.

  • VectorDrawable — ikonalar və sadə illüstrasiyalar üçün üstünlük verilən format. Bir XML faylı 5 PNG-ni əvəz edir.
  • Android Studio Asset Studio — SVG və ya PNG-dən bütün sıxlıqlar üçün resursların avtomatik yaradılması.
  • Lossless WebP — fotoşəkillər üçün optimal format. Keyfiyyət itkisi olmadan PNG-dən 30% daha kiçik.
  • 9-patch — miqyaslana bilən fonlar üçün. Düzgün gerilmə sahələri təyin edildikdə bir fayl bütün sıxlıqlarda işləyir.
  • Adaptive Icons — API 26+ üçün ikona formatı. Müxtəlif sıxlıqlar üçün foreground və background-ı ayrıca təyin etməyə imkan verir.

Tez-tez verilən suallar

Android-də mdpi nə deməkdir?

mdpi (medium-density pixel-independent) — 160 dpi sıxlığı olan əsas Density Bucket-dır. Bütün digər bucketlər mdpi-yə nisbətən hesablanır: hdpi — 1.5×, xhdpi — 2× və s. mdpi bir density-independent pixel (dp) üçün bir fiziki pikselə uyğundur. Dizaynerlər maketlər yaradarkən məhz mdpi-yə istinad edirlər.

Android cihazının ekran sıxlığını necə öyrənmək olar?

DisplayMetrics istifadə edin: getResources().getDisplayMetrics().density scale factor-u qaytarır (mdpi üçün 1.0, xxhdpi üçün 3.0). Bucketi proqramlı şəkildə müəyyən etmək üçün getResources().getConfiguration().densityDpi çağırın. Android Studio-da qoşulmuş cihazın densityDpi-ni göstərən Device Explorer da var.

Bütün sıxlıqlar üçün resurs hazırlamaq məcburidirmi?

Texniki olaraq — bəli, lakin keyfiyyət itkisi ilə. Resurs yalnız drawable-xxhdpi-də varsa, mdpi cihazda 3 dəfə kiçildiləcək — şəkil bulanıq olacaq. Resurs yalnız mdpi-dədirsə, xxhdpi-də böyüdüləcək — pikselləşmə yaranacaq. Tövsiyə olunur ən azı xhdpi, xxhdpi və xxxhdpi üçün hazırlamaq — bu, aktiv cihazların 84%-ni əhatə edir (2025). VectorDrawable üçün kvalifikatorsuz bir fayl kifayətdir.

Nəticə

  • Screen Density — düymdə fiziki piksellərin sayı (dpi/ppi). Android ekranları Density Buckets qruplarına ayırır: mdpi (1×), hdpi (1.5×), xhdpi (2×), xxhdpi (3×), xxxhdpi (4×).
  • Baza bucket mdpi = 160 dpi. Qalanları mdpi × scale factor kimi hesablanır.
  • Müxtəlif sıxlıqlar üçün resurslar res/drawable-{bucket} kvalifikasiyalı qovluqlarında saxlanılır.
  • xxhdpi — ən geniş yayılmış bucket (38%), ardınca xhdpi (28%) və xxxhdpi (18%).
  • VectorDrawable 5 rastr faylını əvəz edir və keyfiyyət itkisi olmadan miqyaslanır.
  • Trafik və yerə 30% qənaət etmək üçün PNG əvəzinə WebP istifadə edin.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun