px: mahiyyəti, mobil inkişafda fiziki piksellər

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

px — fiziki piksel, cihaz ekranında təsvirin ən kiçik elementi. Mobil inkişafda px ekran təsvir ölçüsü və piksel sıxlığının (PPI) əsas vahidi kimi istifadə olunur, lakin interfeyslərin yığılması üçün praktiki olaraq tətbiq edilmir — onun əvəzinə pt, dp və sp məntiqi vahidləri istifadə olunur. Məqalə px-in məntiqi vahidlərdən nə ilə fərqləndiyini, təsvir ölçüsü və PPI-nin necə əlaqəli olduğunu və kodda birbaşa px istifadəsinin niyə antipattern olduğunu izah edir.

Əsas məqamlar

  • px — ekran sıxlığını (PPI) nəzərə almayan fiziki displey pikseli
  • Ekran təsvir ölçüsü px ilə — en və hündürlük üzrə piksellərin sayı, məsələn 1179 × 2556 px
  • PPI — düymdə piksel sıxlığı, təsvir aydınlığının əsas göstəricisi
  • Məntiqi vahidlər (dp, pt, sp) px-i abstraksiya edir və interfeysi müxtəlif ekranlara uyğunlaşdırır
  • Kodda px istifadəsi — antipattern, çünki interfeys müxtəlif sıxlıqlı cihazlarda düzgün göstərilməyəcək

px nədir?

px (pixel, picture element) — raster təsvirin və ya displeyin ən kiçik ünvanlana bilən elementi. Hər piksel rəng haqqında məlumatı RGB (qırmızı, yaşıl, göy) modelində, kanal başına 8–10 bit rəng dərinliyi ilə saxlayır. Müasir mobil cihaz displeyləri milyonlarla piksel ehtiva edir: iPhone 15 Pro — 3 mln, iPad Pro 12.9" — 5.6 mln piksel.

Pikselin fiziki ölçüsü displey sıxlığından (PPI) asılıdır. 326 PPI (iPhone 11) olan cihazda bir pikselin ölçüsü təxminən 0.078 mm-dir. 460 PPI (iPhone 15 Pro) olan displeydə — 0.055 mm. Pikselin fiziki ölçüsü nə qədər kiçik olsa, təsvirin aydınlığı bir o qədər yüksək olar. Piksel sıxlığı render performansına birbaşa təsir edir: daha çox piksel = GPU üçün daha çox iş.

Apple məlumatlarına görə, iPhone 15 Pro displeyinin təsvir ölçüsü 460 PPI sıxlığında 1179 × 2556 px təşkil edir. Müqayisə üçün, iPhone SE (3rd gen) — 326 PPI-da 750 × 1334 px. Ümumi piksel sayında fərq təxminən 3 dəfədir ki, bu da Pro modellərində GPU-ya daha yüksək tələbləri izah edir.

Piksellərdə ekran təsvir ölçüsü

Ekran təsvir ölçüsü — üfüqi və şaquli fiziki piksellərin sayı. En × hündürlük formatında yazılır, məsələn 1179 × 2556 px. Təsvir ölçüsü displeyin fundamental xarakteristikasıdır, onu proqram yolu ilə dəyişmək mümkün deyil — aparat səviyyəsində və matrisada sabitlənmişdir.

CihazTəsvir ölçüsü (px)PPIAspekt nisbəti
iPhone SE (3rd gen)750 × 133432616:9
iPhone 141170 × 253246019.5:9
iPhone 15 Pro Max1290 × 279646019.5:9
Samsung Galaxy S24 Ultra1440 × 312050519.5:9
Google Pixel 8 Pro1344 × 299249020:9
iPad Pro 12.9"2048 × 27322644:3

Piksellərdə təsvir ölçüsünü ekranın məntiqi ölçüsü (iOS üçün pt və ya Android üçün dp) ilə qarışdırmaq olmaz. Məsələn, iPhone 14 məntiqi ölçüsü 390 × 844 pt, lakin fiziki təsvir ölçüsü 1170 × 2532 px — düz 3 dəfə böyükdür, çünki scale factor 3-ə bərabərdir.

PPI və piksel sıxlığı

PPI (pixels per inch) — displeyin bir düymünə düşən piksellərin sayı. Düsturla hesablanır: PPI = √(en² + hündürlük²) / diaqonal. PPI nə qədər yüksək olsa, ayrı-ayrı piksellər bir o qədər kiçik və təsvir bir o qədər hamar olar. Apple Retina displeyini tipik baxış məsafəsində PPI 300-dən yuxarı olan ekran hesab edir.

Müxtəlif cihaz kateqoriyaları müxtəlif sıxlığa malikdir: Apple Watch — 326 PPI, iPhone — 326–460 PPI, iPad — 264 PPI, MacBook Pro — 254–264 PPI. Android cihazları sıxlığı Density Buckets vasitəsilə təsnif edir: mdpi (160 dpi), hdpi (240), xhdpi (320), xxhdpi (480), xxxhdpi (640). Bu vedrələr cihaz üçün hansı resursun (şəkil, dimens) yüklənəcəyini müəyyən edir.

PPI-nin inkişafa təsiri: sıxlıq nə qədər yüksək olsa, tekstur və şəkillərin saxlanması üçün bir o qədər çox yaddaş tələb olunur. 500 PPI olan displeydə piksel, eyni məntiqi element ölçüsündə 320 PPI olan displeyə nisbətən 2.5 dəfə çox GPU yaddaşı tələb edir. Aktivlərin xüsusi sıxlıq vedrələri altında optimallaşdırılması Android inkişafında standart təcrübədir.

px vs məntiqi vahidlər: pt, dp, sp

Fiziki piksellər (px) məntiqi vahidlərdən (pt, dp, sp) onunla fərqlənir ki, onlar aparat təsvir ölçüsünə bağlıdır və miqyaslanmır. Məntiqi vahidlər isə əksinə, proqramçını konkret displeydən abstraksiya edərək eyni 100 pt dəyərinin müxtəlif cihazlarda eyni fiziki ölçüdə göstərilməsinə imkan verir.

VahidPlatformaPPI-dən asılıdırMiqyaslanırNə üçün
pxHamısıBəli (fiziki piksel)XeyrŞəkillər, buferlər, Metal
ptiOS/macOSXeyr (məntiqi nöqtə)scale factorLayout, UIKit, SwiftUI
dpAndroidXeyr (sıxlıqdan asılı olmayan)density bucketLayout, element ölçüləri
spAndroidXeyr (miqyasdan asılı olmayan)density + font scaleMətn (textSize)

Yenidən hesablama düsturları: iOS üçün — px = pt × scale (scale = 1, 2 və ya 3). Android üçün — px = dp × (dpi / 160). Kodda birbaşa px istifadəsi o deməkdir ki, interfeys müxtəlif sıxlıqlı cihazlarda fərqli görünəcək: yüksək PPI olan ekranda element çox kiçik, aşağı PPI-da isə çox böyük olacaq.

Niyə px kodda istifadə edilmir

Mobil tətbiqin mənbə kodunda px istifadəsi — antipattern, müxtəlif piksel sıxlığı olan cihazlarda interfeysin düzgün göstərilməməsinə səbəb olur. Müasir freymvorklar (UIKit, SwiftUI, Jetpack Compose, XML Layouts) ölçüləri piksellərdə göstərməyi qadağan edir və ya tövsiyə etmir.

  • iOS UIKit — bütün frame, bounds və constraint constant-ları pt ilə verilir. Piksellər yalnız UIGraphicsImageRenderer vasitəsilə rasterləşdirmə mərhələsində görünür
  • SwiftUI — px ilə ölçü vermək üçün API yoxdur. Bütün dəyərlər Font, frame, padding vasitəsilə pt-dir
  • Android XML — dimens.xml-də px göstərsəniz, Android Studio lint xəbərdarlığı verir: "Use \`sp\` instead of \`px\` for text sizes"
  • Jetpack Compose — mətn üçün TextUnit, elementlər üçün Dp. Kompilyator tipləri qarışdırmağa icazə vermir

Kodda px-in yeganə qanuni istifadəsi rastrlərlə işdir: Bitmap yükləmə, təsvirlərin renderi üçün Canvas yaratma, Metal və ya OpenGL ilə iş. Bu hallarda px — hədəf buferin fiziki pikselləridir və düzgün render üçün onlar nəzərə alınmalıdır. Bütün digər hallarda məntiqi vahidlər istifadə olunur.

Şəkillərdə və aktivlərdə piksellər

Şəkillər və ikonlar piksellərdə saxlanılır, lakin hər ekran növü üçün müxtəlif versiyalar təqdim olunur. iOS Assets.xcassets-də @1x, @2x, @3x suffikslərindən istifadə edir. Android drawable-mdpi (1×), drawable-hdpi (1.5×), drawable-xhdpi (2×), drawable-xxhdpi (3×), drawable-xxxhdpi (4×) qovluqlarından istifadə edir. Sistem ekran sıxlığına əsasən avtomatik olaraq lazımi faylı seçir.

iOS scaleAndroid vedrəsiƏmsalNümunə (48 pt/dp)
@1xmdpi (160 dpi)48 × 48 px
@2xxhdpi (320 dpi)96 × 96 px
@3xxxhdpi (480 dpi)144 × 144 px
xxxhdpi (640 dpi)192 × 192 px

Aktivlərin tədarükü qaydası: təsviri vektor formatında (PDF, SVG) yaradın və tələb olunan ölçülərdə raster nüsxələrə ixrac edin. Vektor aktivləri keyfiyyət itkisi olmadan miqyaslanır və repozitoridə daha az yer tutur. Android-də vektor resursları VectorDrawable vasitəsilə birbaşa istifadə edilə bilər ki, bu da çoxsaylı raster nüsxələrə ehtiyacı aradan qaldırır.

Tez-tez verilən suallar

px və dp arasında fərq nədir?

px — ekranın fiziki pikseli. dp (density-independent pixel) — 160 dpi sıxlığı olan ekranda 1 px-ə bərabər olan Android məntiqi vahidi. Müxtəlif sıxlıqlarda dp avtomatik olaraq müxtəlif sayda px-ə çevrilir, elementin fiziki ölçüsünü qoruyur.

Niyə kodda ölçüləri px ilə göstərmək olmaz?

Çünki px ekran sıxlığını nəzərə almır. 100 px ölçüsündə element müxtəlif PPI-lı cihazlarda fərqli görünəcək: 326 PPI ekranda 460 PPI-dan daha böyük olacaq. Məntiqi vahidlər (dp, pt, sp) bu problemi avtomatik həll edir.

PPI nədir və necə hesablanır?

PPI (pixels per inch) — displeyin düymündə piksel sayı. Düsturla hesablanır: PPI = √(w² + h²) / d, burada w və h — px ilə təsvir ölçüsü, d — düymlə diaqonal. PPI nə qədər yüksək olsa, təsvir bir o qədər aydındır. Apple Retina displeyi 300 PPI-dan başlayır.

Nə vaxt px istifadəsi əsaslandırılmışdır?

px raster buferlərlə işləyərkən əsaslandırılmışdır: Bitmap yaratma, Canvas-da render, Metal/OpenGL şeyderlərinin proqramlaşdırılması, kamera şəkillərinin işlənməsi. Layout və tipoqrafikada px istifadə edilmir — pt (iOS), dp və sp (Android) tətbiq olunur.

Ekran təsvir ölçüsünü px ilə necə tapmaq olar?

iOS-da: UIScreen.main.nativeBounds px ilə ölçü qaytarır. Android-də: DisplayMetrics.widthPixelsheightPixels context.resources.displayMetrics-dən. SwiftUI-də: GeometryReader pt ilə ölçü qaytarır, px üçün displayScale-ə vurmaq lazımdır.

Nəticə

  • px — displeyin fiziki pikseli, ekran təsvir ölçüsünün fundamental vahidi
  • Təsvir ölçüsü — en və hündürlük üzrə piksellərin sayı, aparat səviyyəsində sabitlənmişdir
  • PPI — düymdə piksel sıxlığı, təsvir aydınlığını və GPU tələblərini müəyyən edir
  • Məntiqi vahidlər (pt, dp, sp) px-i abstraksiya edir və interfeysi istənilən ekrana uyğunlaşdırır
  • Antipattern — layout və tipoqrafikada px istifadəsi; düzgün sahə — raster buferlər
  • Aktivlər müxtəlif təsvir ölçülərində təqdim olunur (@1x/@2x/@3x iOS üçün, density buckets Android üçün)
  • Vektor formatları (PDF, SVG, VectorDrawable) çoxsaylı raster nüsxələrdən üstündür

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