px: ουσία, φυσικά εικονοστοιχεία στην ανάπτυξη εφαρμογών για κινητά

Συγγραφέας: IT Sectr Δημοσιεύτηκε: 2026-02-25 Χρόνος ανάγνωσης: 7 λεπ

px — φυσικό εικονοστοιχείο (pixel), το μικρότερο στοιχείο εικόνας στην οθόνη μιας συσκευής. Στην ανάπτυξη εφαρμογών για κινητά, το px χρησιμοποιείται ως βασική μονάδα ανάλυσης οθόνης και πυκνότητας εικονοστοιχείων (PPI), αλλά πρακτικά δεν εφαρμόζεται για τη διάταξη διεπαφών — αντί αυτού χρησιμοποιούνται οι λογικές μονάδες pt, dp και sp. Το άρθρο εξηγεί σε τι διαφέρει το px από τις λογικές μονάδες, πώς συνδέονται η ανάλυση και το PPI και γιατί η άμεση χρήση του px στον κώδικα είναι αντ-πρότυπο.

Κύρια σημεία

  • px — φυσικό εικονοστοιχείο οθόνης που δεν λαμβάνει υπόψη την πυκνότητα οθόνης (PPI)
  • Ανάλυση οθόνης σε px — αριθμός εικονοστοιχείων σε πλάτος και ύψος, π.χ. 1179 × 2556 px
  • PPI — πυκνότητα εικονοστοιχείων ανά ίντσα, κύριος δείκτης ευκρίνειας εικόνας
  • Λογικές μονάδες (dp, pt, sp) αφαιρούν το px και προσαρμόζουν τη διεπαφή σε διαφορετικές οθόνες
  • Χρήση px σε κώδικα — αντ-πρότυπο, καθώς η διεπαφή δεν θα εμφανίζεται σωστά σε συσκευές με διαφορετική πυκνότητα

Τι είναι το px;

px (pixel, picture element) — το μικρότερο προσβάσιμο στοιχείο μιας ψηφιδωτής εικόνας ή οθόνης. Κάθε εικονοστοιχείο αποθηκεύει πληροφορίες χρώματος στο μοντέλο RGB (κόκκινο, πράσινο, μπλε) με βάθος χρώματος 8 έως 10 bit ανά κανάλι. Οι σύγχρονες οθόνες κινητών συσκευών περιέχουν εκατομμύρια εικονοστοιχεία: iPhone 15 Pro — 3 εκατομμύρια, iPad Pro 12.9" — 5.6 εκατομμύρια εικονοστοιχεία.

Το φυσικό μέγεθος του εικονοστοιχείου εξαρτάται από την πυκνότητα οθόνης (PPI). Σε μια συσκευή με 326 PPI (iPhone 11) ένα εικονοστοιχείο έχει μέγεθος περίπου 0.078 mm. Σε οθόνη με 460 PPI (iPhone 15 Pro) — 0.055 mm. Όσο μικρότερο είναι το φυσικό μέγεθος του εικονοστοιχείου, τόσο μεγαλύτερη είναι η ευκρίνεια της εικόνας. Η πυκνότητα εικονοστοιχείων επηρεάζει άμεσα την απόδοση απόδοσης: περισσότερα εικονοστοιχεία = περισσότερη δουλειά για την GPU.

Σύμφωνα με στοιχεία της Apple, η ανάλυση οθόνης του iPhone 15 Pro είναι 1179 × 2556 px με πυκνότητα 460 PPI. Για σύγκριση, το iPhone SE (3rd gen) — 750 × 1334 px με 326 PPI. Η διαφορά στον συνολικό αριθμό εικονοστοιχείων είναι σχεδόν 3 φορές, γεγονός που εξηγεί τις υψηλότερες απαιτήσεις GPU στα μοντέλα Pro.

Ανάλυση οθόνης σε εικονοστοιχεία

Ανάλυση οθόνης — αριθμός φυσικών εικονοστοιχείων οριζόντια και κάθετα. Γράφεται σε μορφή πλάτος × ύψος, π.χ. 1179 × 2556 px. Η ανάλυση είναι ένα θεμελιώδες χαρακτηριστικό της οθόνης που δεν μπορεί να αλλάξει προγραμματιστικά — είναι σταθερό σε επίπεδο υλικού και μήτρας.

ΣυσκευήΑνάλυση (px)PPIΑναλογία διαστάσεων
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

Η ανάλυση σε εικονοστοιχεία δεν πρέπει να συγχέεται με το λογικό μέγεθος οθόνης (σε pt για iOS ή dp για Android). Για παράδειγμα, το iPhone 14 έχει λογικό μέγεθος 390 × 844 pt, αλλά φυσική ανάλυση 1170 × 2532 px — ακριβώς 3 φορές μεγαλύτερη, καθώς ο συντελεστής κλίμακας είναι 3.

PPI και πυκνότητα εικονοστοιχείων

PPI (pixels per inch) — αριθμός εικονοστοιχείων ανά ίντσα οθόνης. Υπολογίζεται με τον τύπο: PPI = √(πλάτος² + ύψος²) / διαγώνιος. Όσο υψηλότερο είναι το PPI, τόσο πιο λεπτά είναι τα μεμονωμένα εικονοστοιχεία και τόσο πιο λεία φαίνεται η εικόνα. Η Apple θεωρεί Retina οθόνη εκείνη με PPI άνω των 300 σε τυπική απόσταση παρακολούθησης.

Διαφορετικές κατηγορίες συσκευών έχουν διαφορετική πυκνότητα: Apple Watch — 326 PPI, iPhone — 326–460 PPI, iPad — 264 PPI, MacBook Pro — 254–264 PPI. Οι συσκευές Android ταξινομούν την πυκνότητα μέσω Density Buckets: mdpi (160 dpi), hdpi (240), xhdpi (320), xxhdpi (480), xxxhdpi (640). Αυτοί οι κάδοι καθορίζουν ποιος πόρος (εικόνα, dimens) θα φορτωθεί για τη συσκευή.

Επίδραση του PPI στην ανάπτυξη: όσο μεγαλύτερη είναι η πυκνότητα, τόσο περισσότερη μνήμη απαιτείται για την αποθήκευση υφών και εικόνων. Ένα εικονοστοιχείο σε οθόνη με 500 PPI απαιτεί 2.5 φορές περισσότερη μνήμη GPU από ό,τι σε οθόνη με 320 PPI στο ίδιο λογικό μέγεθος στοιχείου. Η βελτιστοποίηση στοιχείων για συγκεκριμένους κάδους πυκνότητας είναι συνήθης πρακτική στην ανάπτυξη Android.

px vs λογικές μονάδες: pt, dp, sp

Τα φυσικά εικονοστοιχεία (px) διαφέρουν από τις λογικές μονάδες (pt, dp, sp) στο ότι είναι συνδεδεμένα με την ανάλυση υλικού και δεν κλιμακώνονται. Οι λογικές μονάδες, αντίθετα, αφαιρούν τον προγραμματιστή από τη συγκεκριμένη οθόνη, επιτρέποντας στην ίδια τιμή 100 pt να εμφανίζεται με το ίδιο φυσικό μέγεθος σε διαφορετικές συσκευές.

ΜονάδαΠλατφόρμαΕξαρτάται από PPIΚλιμακώνεταιΓια τι
pxΌλεςΝαι (φυσικό εικονοστοιχείο)ΌχιΕικόνες, ενδιάμεσοι αποθήκευσης, Metal
ptiOS/macOSΌχι (λογικό σημείο)scale factorLayout, UIKit, SwiftUI
dpAndroidΌχι (ανεξάρτητο πυκνότητας)density bucketLayout, μεγέθη στοιχείων
spAndroidΌχι (ανεξάρτητο κλίμακας)density + font scaleΚείμενο (textSize)

Τύποι μετατροπής: για iOS — px = pt × scale (όπου scale = 1, 2 ή 3). Για Android — px = dp × (dpi / 160). Η άμεση χρήση του px στον κώδικα σημαίνει ότι η διεπαφή θα φαίνεται διαφορετική σε συσκευές με διαφορετική πυκνότητα: σε οθόνη με υψηλό PPI το στοιχείο θα είναι πολύ μικρό, ενώ σε χαμηλό PPI — πολύ μεγάλο.

Γιατί το px δεν χρησιμοποιείται στον κώδικα

Η χρήση px στον πηγαίο κώδικα μιας εφαρμογής κινητού — αντ-πρότυπο που οδηγεί σε εσφαλμένη εμφάνιση της διεπαφής σε συσκευές με διαφορετική πυκνότητα εικονοστοιχείων. Τα σύγχρονα πλαίσια (UIKit, SwiftUI, Jetpack Compose, XML Layouts) απαγορεύουν ή δεν συνιστούν τον καθορισμό μεγεθών σε εικονοστοιχεία.

  • iOS UIKit — όλα τα frame, bounds και constraint constants ορίζονται σε pt. Τα εικονοστοιχεία εμφανίζονται μόνο στο στάδιο ψηφιοποίησης μέσω UIGraphicsImageRenderer
  • SwiftUI — δεν υπάρχει API για ορισμό μεγεθών σε px. Όλες οι τιμές είναι pt μέσω Font, frame, padding
  • Android XML — αν ορίσετε px στο dimens.xml, το Android Studio εμφανίζει προειδοποίηση lint: "Use \`sp\` instead of \`px\` for text sizes"
  • Jetpack Compose — TextUnit για κείμενο, Dp για στοιχεία. Ο μεταγλωττιστής δεν επιτρέπει ανάμειξη τύπων

Η μόνη νόμιμη χρήση του px στον κώδικα — εργασία με ψηφιδωτούς ενδιάμεσους αποθήκευσης: φόρτωση Bitmap, δημιουργία Canvas για απόδοση εικόνων, εργασία με Metal ή OpenGL. Σε αυτές τις περιπτώσεις, το px είναι τα φυσικά εικονοστοιχεία του ενδιάμεσου αποθήκευσης-στόχου και πρέπει να λαμβάνονται υπόψη για σωστή απόδοση. Σε όλες τις άλλες περιπτώσεις χρησιμοποιούνται λογικές μονάδες.

Εικονοστοιχεία σε εικόνες και στοιχεία

Οι εικόνες και τα εικονίδια αποθηκεύονται σε εικονοστοιχεία, αλλά για κάθε τύπο οθόνης παρέχονται διαφορετικές εκδόσεις. Το iOS χρησιμοποιεί επιθήματα @1x, @2x, @3x στο Assets.xcassets. Το Android χρησιμοποιεί φακέλους drawable-mdpi (1×), drawable-hdpi (1.5×), drawable-xhdpi (2×), drawable-xxhdpi (3×), drawable-xxxhdpi (4×). Το σύστημα επιλέγει αυτόματα το κατάλληλο αρχείο βάσει της πυκνότητας οθόνης.

iOS scaleAndroid κάδοςΣυντελεστήςΠαράδειγμα (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

Κανόνας παροχής στοιχείων: δημιουργήστε την εικόνα σε διανυσματική μορφή (PDF, SVG) και εξάγετε σε ψηφιδωτά αντίγραφα των απαιτούμενων μεγεθών. Τα διανυσματικά στοιχεία κλιμακώνονται χωρίς απώλεια ποιότητας και καταλαμβάνουν λιγότερο χώρο στο αποθετήριο. Στο Android, οι διανυσματικοί πόροι μπορούν να χρησιμοποιηθούν απευθείας μέσω VectorDrawable, εξαλείφοντας την ανάγκη για πολλαπλά ψηφιδωτά αντίγραφα.

Συχνές Ερωτήσεις

Ποια είναι η διαφορά μεταξύ px και dp;

px — φυσικό εικονοστοιχείο οθόνης. dp (density-independent pixel) — λογική μονάδα Android, ίση με 1 px σε οθόνη με πυκνότητα 160 dpi. Σε διαφορετικές πυκνότητες, το dp μετατρέπεται αυτόματα σε διαφορετικό αριθμό px, διατηρώντας το φυσικό μέγεθος του στοιχείου.

Γιατί δεν μπορούν να οριστούν μεγέθη σε px στον κώδικα;

Επειδή το px δεν λαμβάνει υπόψη την πυκνότητα οθόνης. Ένα στοιχείο μεγέθους 100 px θα φαίνεται διαφορετικό σε συσκευές με διαφορετικό PPI: σε οθόνη 326 PPI θα είναι μεγαλύτερο από ό,τι σε 460 PPI. Οι λογικές μονάδες (dp, pt, sp) λύνουν αυτό το πρόβλημα αυτόματα.

Τι είναι το PPI και πώς υπολογίζεται;

PPI (pixels per inch) — αριθμός εικονοστοιχείων ανά ίντσα οθόνης. Υπολογίζεται με τον τύπο: PPI = √(w² + h²) / d, όπου w και h — ανάλυση σε px, d — διαγώνιος σε ίντσες. Όσο υψηλότερο είναι το PPI, τόσο πιο ευκρινής είναι η εικόνα. Η Retina οθόνη της Apple ξεκινά από 300 PPI.

Πότε δικαιολογείται η χρήση του px;

px δικαιολογείται κατά την εργασία με ψηφιδωτούς ενδιάμεσους αποθήκευσης: δημιουργία Bitmap, απόδοση σε Canvas, προγραμματισμός shader Metal/OpenGL, επεξεργασία εικόνων κάμερας. Σε διάταξη και τυπογραφία το px δεν χρησιμοποιείται — εφαρμόζονται pt (iOS), dp και sp (Android).

Πώς μπορώ να μάθω την ανάλυση οθόνης σε px;

Σε iOS: UIScreen.main.nativeBounds επιστρέφει μέγεθος σε px. Σε Android: DisplayMetrics.widthPixels και heightPixels από context.resources.displayMetrics. Σε SwiftUI: GeometryReader επιστρέφει μέγεθος σε pt, για px πρέπει να πολλαπλασιαστεί με displayScale.

Σύνοψη

  • px — φυσικό εικονοστοιχείο οθόνης, θεμελιώδης μονάδα ανάλυσης οθόνης
  • Ανάλυση — αριθμός εικονοστοιχείων σε πλάτος και ύψος, σταθερή σε επίπεδο υλικού
  • PPI — πυκνότητα εικονοστοιχείων ανά ίντσα, καθορίζει την ευκρίνεια εικόνας και τις απαιτήσεις GPU
  • Λογικές μονάδες (pt, dp, sp) αφαιρούν το px και προσαρμόζουν τη διεπαφή σε οποιαδήποτε οθόνη
  • Αντ-πρότυπο — χρήση px σε διάταξη και τυπογραφία, σωστός τομέας — ψηφιδωτοί ενδιάμεσοι αποθήκευσης
  • Στοιχεία παρέχονται σε διαφορετικές αναλύσεις (@1x/@2x/@3x για iOS, density buckets για Android)
  • Διανυσματικές μορφές (PDF, SVG, VectorDrawable) είναι προτιμότερες από πολλαπλά ψηφιδωτά αντίγραφα

Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση

Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.

Συζήτηση έργου

Διαβάστε επίσης