سؤال

ما الفرق بين وحدات القياس في Android؟

  • بكسل
  • تراجع
  • موانئ دبي
  • sp
هل كانت مفيدة؟

المحلول

من توثيق مطور الروبوت:

  1. أقرم
    بكسل - يتوافق مع البكسل الفعلي على الشاشة.

  2. في
    بوصة - بناء على الحجم المادي للشاشة.
    1 بوصة = 2.54 سنتيمتر

  3. مم
    ملليمتر - بناء على الحجم المادي للشاشة.

  4. بات
    نقاط - 1/72 من بوصة تعتمد على الحجم المادي للشاشة.

  5. دهان أو اندلع
    كثافةالبكسل - وحدات مجردة تستند إلى الكثافة الجسدية للشاشة. هذه الوحدات نسبة إلى شاشة 160 نقطة في البوصة، لذلك DP واحد هو بكسل واحد على شاشة 160 نقطة في البوصة. ستتغير نسبة DP-To-Pixel مع كثافة الشاشة، ولكن ليس بالضرورة في نسبة مباشرة. ملاحظة: يقبل المحول البرمجي كلا من "DIP" و "DP"، على الرغم من "DP" أكثر اتساقا مع "SP".

  6. جهد
    مقياس- بكسل - هذا هو مثل وحدة DP، ولكن يتم تحجيمه أيضا من تفضيل حجم خط المستخدم. يوصى باستخدام هذه الوحدة عند تحديد أحجام الخطوط، لذلك سيتم تعديلها لكل من كثافة الشاشة وتفضيل المستخدم.

من فهم استقلال الكثافة في الروبوت:

+----------------+----------------+---------------+-------------------------------+
| Density Bucket | Screen Density | Physical Size | Pixel Size                    | 
+----------------+----------------+---------------+-------------------------------+
| ldpi           | 120 dpi        | 0.5 x 0.5 in  | 0.5 in * 120 dpi = 60x60 px   | 
+----------------+----------------+---------------+-------------------------------+
| mdpi           | 160 dpi        | 0.5 x 0.5 in  | 0.5 in * 160 dpi = 80x80 px   | 
+----------------+----------------+---------------+-------------------------------+
| hdpi           | 240 dpi        | 0.5 x 0.5 in  | 0.5 in * 240 dpi = 120x120 px | 
+----------------+----------------+---------------+-------------------------------+
| xhdpi          | 320 dpi        | 0.5 x 0.5 in  | 0.5 in * 320 dpi = 160x160 px | 
+----------------+----------------+---------------+-------------------------------+
| xxhdpi         | 480 dpi        | 0.5 x 0.5 in  | 0.5 in * 480 dpi = 240x240 px | 
+----------------+----------------+---------------+-------------------------------+
| xxxhdpi        | 640 dpi        | 0.5 x 0.5 in  | 0.5 in * 640 dpi = 320x320 px | 
+----------------+----------------+---------------+-------------------------------+
+---------+-------------+---------------+-------------+--------------------+
| Unit    | Description | Units Per     | Density     | Same Physical Size | 
|         |             | Physical Inch | Independent | On Every Screen    | 
+---------+-------------+---------------+-------------+--------------------+
| px      | Pixels      | Varies        | No          | No                 | 
+---------+-------------+---------------+-------------+--------------------+
| in      | Inches      | 1             | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| mm      | Millimeters | 25.4          | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| pt      | Points      | 72            | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| dp      | Density     | ~160          | Yes         | No                 | 
|         | Independent |               |             |                    | 
|         | Pixels      |               |             |                    | 
+---------+-------------+---------------+-------------+--------------------+
| sp      | Scale       | ~160          | Yes         | No                 | 
|         | Independent |               |             |                    | 
|         | Pixels      |               |             |                    | 
+---------+-------------+---------------+-------------+--------------------+

يمكن أيضا العثور على مزيد من المعلومات في وثائق تصميم جوجل.

نصائح أخرى

إلى حد كبير كل شيء عن هذا وكيفية تحقيق أفضل دعم لشاشات متعددة من الأحجام والكثافات المختلفة موثقة جيدا هنا:

حجم الشاشة
الحجم الفعلي الفعلي، يقاس كقطري الشاشة. بالنسبة للبساطة، تقوم مجموعات Android بجميع أحجام الشاشة الفعلية في أربع أحجام معممة: صغيرة، طبيعية، كبيرة، كبيرة جدا.

كثافة الشاشة
عدد بكسل داخل منطقة مادية للشاشة؛ يشار إليها عادة باسم DPI (النقاط لكل بوصة). على سبيل المثال، تحتوي شاشة كثافة "منخفضة" على عدد أقل من بكسل داخل منطقة مادية معينة، مقارنة بشاشة كثافة "عادية" أو "عالية". بالنسبة للبساطة، تقوم مجموعات Android بجميع كثافات الشاشة الفعلية في ستة الكثافة المعممة: منخفضة ومتوسطة وعالية وعالية عالية، بالإضافة إلى إضاءة عالية، بالإضافة إلى إضاءة عالية للغاية.

توجيه
اتجاه الشاشة من وجهة نظر المستخدم. هذا إما المناظر الطبيعية أو صورة، مما يعني أن نسبة إيلاء العرض إلى جانب الشاشة إما على نطاق واسع أو طويل القامة، على التوالي. كن على دراية بأن الأجهزة المختلفة فقط تعمل في اتجاهات مختلفة بشكل افتراضي، ولكن يمكن للتوجه تغيير وقت التشغيل عندما يقوم المستخدم بتدوير الجهاز.

الدقة
إجمالي عدد البكسلات المادية على الشاشة. عند إضافة دعم لشاشات متعددة، لا تعمل التطبيقات مباشرة مع الدقة؛ يجب أن تشعر الطلبات بالقلق فقط بحجم الشاشة والكثافة، كما هو محدد من قبل مجموعات الحجم والكثافة المعممة.

بكسل مستقلة الكثافة (DP)
وحدة بكسل الظاهرية التي يجب استخدامها عند تحديد تخطيط واجهة المستخدم، للتعبير عن أبعاد التصميم أو الموضع بطريقة مستقلة كثافة. يعادل بكسل المستقل بالكثافة بكسل مادي واحد على شاشة 160 نقطة في البوصة، وهي كثافة خط الأساس التي يفترض بها النظام لشاشة كثافة "متوسطة". عند وقت التشغيل، يعالج النظام بشفافية أي تحجيم وحدات DP، حسب الضرورة، بناء على الكثافة الفعلية للشاشة قيد الاستخدام. تحويل وحدات DP إلى شاشة البكسل بسيطة: px = dp * (dpi / 160). وبعد على سبيل المثال، على شاشة 240 نقطة في البوصة، يساوي 1 موانئ دبي 1.5 بكسل الفيزيائي. يجب عليك دائما استخدام وحدات DP عند تحديد UI في تطبيق التطبيق الخاص بك، لضمان العرض المناسب ل UI الخاص بك على شاشات مع كثافات مختلفة.

إذا كنت جادا في تطوير تطبيق Android لأكثر من نوع واحد من أنواع الجهاز، فيجب عليك قراءة مستند تطوير دعم الشاشات مرة واحدة على الأقل. بالإضافة إلى ذلك، فمن الأفضل دائما معرفة العدد الفعلي للأجهزة النشطة التي تحتوي على تكوين شاشة معين.

سأقوم بتوصيل المزيد عن مدى التحويل DP إلى PX:

  • إذا كان يعمل على جهاز MDPI، أ 150 x 150 px سوف تأخذ الصورة 150 * 150 dp من مساحة الشاشة.
  • إذا كان يعمل على جهاز HDPI، 150 x 150 px سوف تأخذ الصورة 100 * 100 dp من مساحة الشاشة.
  • إذا كان يعمل على جهاز XHDPI، أ 150x150 px سوف تأخذ الصورة 75 * 75 dp من مساحة الشاشة.

الاتجاه الآخر حول: قل، تريد إضافة صورة إلى طلبك وتحتاج إليها لملء 100 * 100 dp مراقبة. ستحتاج إلى إنشاء صور مختلفة الحجم لأحجام الشاشة المدعومة:

  • 100 * 100 px صورة ل MDPI.
  • 150 * 150 px صورة ل HDPI.
  • 200 * 200 px صورة XHDPI.

PX بكسل - النقطة لكل نطاق يتوافق مع البكسل الفعلي على الشاشة.

بالبوصة - بناء على الحجم المادي للشاشة.

مم ملليمتر - بناء على الحجم المادي للشاشة.

نقاط PT - 1/72 من بوصة تعتمد على الحجم المادي للشاشة.

dp كثافة - بكسل مستقلة - وحدة مجردة تستند إلى الكثافة الجسدية للشاشة. هذه الوحدات نسبة إلى شاشة 160 نقطة في البوصة، لذلك dp هو واحد بكسل على شاشة 160 نقطة في البوصة. ستتغير نسبة DP-To-Pixel مع كثافة الشاشة، ولكن ليس بالضرورة في نسبة مباشرة. ملاحظة: يقبل المحول البرمجي كلاهما dip و dp, ، على أية حال dp هو أكثر اتساقا مع sp.

بكسل البكسل المستقل - هذا يشبه dp وحدة، ولكن يتم تحجيمها أيضا من أجل تفضيل حجم الخط المستخدم. يوصى باستخدام هذه الوحدة عند تحديد أحجام الخطوط، لذلك سيتم تعديلها لكل من كثافة الشاشة وتفضيلات المستخدم.

خذ مثالا لشعارين من نفس الحجم، لكن واحد لديه كثافة شاشة 160 نقطة في البوصة (النقاط لكل بوصة، أي بكسل في البوصة) والآخر هو 240 نقطة في البوصة.

                          Lower resolution   screen          Higher resolution, same size
Physical Width                      1.5 inches                        1.5 inches
Dots Per Inch (“dpi”)               160                               240
Pixels (=width*dpi)                 240                               360
Density (factor of baseline 160)    1.0                               1.5

Density-independent Pixels          240                               240
(“dip” or “dp” or “dps”)

Scale-independent pixels 
 (“sip” or “sp”)                  Depends on user font size settings    same

علاوة على ذلك، يجب أن يكون لديك فهم واضح حول المفاهيم التالية:

حجم الشاشة:

الحجم الفعلي الفعلي، يقاس كقطري الشاشة. بالنسبة للبساطة، مجموعات Android جميع أحجام الشاشة الفعلية إلى أربع أحجام معممة: صغيرة، طبيعية، كبيرة، كبيرة جدا.

كثافة الشاشة:

كمية البكسل داخل منطقة مادية للشاشة؛ يشار إليها عادة باسم DPI (النقاط لكل بوصة). على سبيل المثال، تحتوي شاشة كثافة "منخفضة" على عدد أقل من بكسل داخل منطقة مادية معينة، مقارنة بشاشة كثافة "عادية" أو "عالية". بالنسبة للبساطة، تقوم مجموعات Android بجميع كثافات الشاشة الفعلية في أربعة كثافة معممة: منخفضة ومتوسطة وعالية وزيادة عالية.

توجيه:

اتجاه الشاشة من وجهة نظر المستخدم. هذا إما المناظر الطبيعية أو صورة، مما يعني أن نسبة إيلاء العرض إلى جانب الشاشة إما على نطاق واسع أو طويل القامة، على التوالي. كن على دراية بأن الأجهزة المختلفة فقط تعمل في اتجاهات مختلفة بشكل افتراضي، ولكن يمكن للتوجه تغيير وقت التشغيل عندما يقوم المستخدم بتدوير الجهاز.

الدقة:

إجمالي عدد البكسلات المادية على الشاشة. عند إضافة دعم لشاشات متعددة، لا تعمل التطبيقات مباشرة مع الدقة؛ يجب أن تشعر الطلبات بالقلق فقط بحجم الشاشة والكثافة، كما هو محدد من قبل مجموعات الحجم والكثافة المعممة.

بكسل مستقل كثافة (DP):

وحدة بكسل الظاهرية التي يجب استخدامها عند تحديد تخطيط واجهة المستخدم، للتعبير عن أبعاد التصميم أو الموضع بطريقة مستقلة كثافة. يعادل بكسل المستقل بالكثافة بكسل مادي واحد على شاشة 160 نقطة في البوصة، وهي كثافة خط الأساس التي يفترض بها النظام لشاشة كثافة "متوسطة". عند وقت التشغيل، يعالج النظام بشفافية أي تحجيم وحدات DP، حسب الضرورة، بناء على الكثافة الفعلية للشاشة قيد الاستخدام. تحويل وحدات DP إلى شاشة البكسل بسيطة: PX = DP * (DPI / 160). على سبيل المثال، على شاشة 240 نقطة في البوصة، يساوي 1 موانئ دبي 1.5 بكسل الفيزيائي. يجب عليك دائما استخدام وحدات DP عند تحديد UI في تطبيق التطبيق الخاص بك، لضمان العرض المناسب ل UI الخاص بك على شاشات مع كثافات مختلفة.

مرجع: موقع مطوري الروبوت

dp يكون dip. وبعد استخدامها لكل شيء (الهامش والحشو وغيرها).

يستخدم sp ل {حجم النص} فقط.


للحصول على نفس الحجم على كثافات الشاشة المختلفة، يترجم Android هذه الوحدات إلى بكسل في وقت التشغيل، لذلك لا يوجد رياضيات صعبة بالنسبة لك.


انظر الفرق بين px, dp و sp على أحجام الشاشة المختلفة.

Enter image description here

مصدر: برمجة Android: دليل Ranch Big Nerd

لقد احسبت الصيغة أدناه لإجراء التحويلات dpi ل dp و sp enter image description here

تعريفات

أقرم أو نقطة هو بيكسل على الشاشة الفيزيائية.

DPI. هي بكسل في البوصة على الشاشة المادية وتمثل كثافة الشاشة.

android يعطي أسماء الاسم المستعار للعديد من الكثافة

  • LDPI (منخفض) ~ 120DPI
  • MDPI (متوسط) ~ 160dpi
  • HDPI (مرتفع) ~ 240DPI
    • معظم الأجهزة في عام 2015 هي هنا
  • XHDPI (إضافي عالية) ~ 320dpi
    • Apple iPhone 4/5/6، Nexus 4
  • XXHDPI (إضافي إضافي) ~ 480DPI
    • نيكزس 5.
  • XXXHDPI (إضافي إضافي إضافي) ~ 640dpi

اندلع أو دهان نكون الكثافة - وحدات البكسل, ، أي أنها تتوافق مع بكسل أكثر أو أقل اعتمادا على الكثافة الجسدية.

  • 1DP = 1PX على MDPI

enter image description here

جهد أو رشفة هو بكسل مستقلة. وبعد يتم تحجيمها عندما نص كبير يتم تشغيل الخيار في إعدادات > إمكانية الوصول

  • 1SP = 1DP.
  • 1SP = 1.2DP مع إمكانية الوصول نص كبير

ماذا تستخدم؟

يستخدم جهد لحجم النص.

يستخدم دهان لكل شيء آخر.

المصدر 1.

المصدر 2.

المصدر 3.: (يتم تقديم البيانات من المصدر 3 أدناه)

هذه هي قيم البعد المعرفة في XML. يتم تحديد البعد مع رقم متبوعا بوحدة القياس. على سبيل المثال: 10 بكسل، 2ين، 5SP. يتم دعم وحدات القياس التالية بواسطة Android:

دهان

بكسل الكثافة المستقلة - وحدة مجردة تستند إلى الكثافة الجسدية للشاشة. هذه الوحدات نسبة إلى شاشة 160 نقطة في البوصة (النقاط لكل بوصة)، والتي يساوي 1DP تقريبا 1PX. عند التشغيل على شاشة أعلى كثافة، يتم توسيع عدد البكسلات المستخدمة في رسم 1DP بواسطة عامل مناسب ل DPI للشاشة. وبالمثل، عندما تكون على شاشة أقل كثافة، يتم تقليل عدد البكسل المستخدمة ل 1dp. ستتغير نسبة DP-To-Pixel مع كثافة الشاشة، ولكن ليس بالضرورة في نسبة مباشرة. يعد استخدام وحدات DP (بدلا من وحدات PX) حلا بسيطا لجعل أبعاد الرؤية في تخطيطك لتغيير حجم كثافة الشاشة المختلفة بشكل صحيح. وبعبارة أخرى، فإنه يوفر الاتساقيات لأحجام العالم الحقيقي لعناصر UI عبر الأجهزة المختلفة.

جهد

بكسل المستقلة النطاق - وهذا مثل وحدة موانئ دبي، ولكن يتم تحجيمه أيضا من تفضيل حجم خط المستخدم. يوصى باستخدام هذه الوحدة عند تحديد أحجام الخطوط، لذلك سيتم تعديلها لكل من كثافة الشاشة وتفضيلات المستخدم.

بات

النقاط - 1/72 من بوصة تعتمد على الحجم المادي للشاشة.

أقرم

بكسل - يتوافق مع البكسل الفعلي على الشاشة. لا ينصح بوحدة القياس هذه لأن التمثيل الفعلي يمكن أن يختلف عبر الأجهزة؛ قد يكون لكل جهاز عددا مختلفا من وحدات البكسل في البوصة وقد يكون لديك المزيد أو أقل بكسلات كاملة على الشاشة.

مم

ملليمترات - بناء على الحجم المادي للشاشة.

في

بوصة - بناء على الحجم المادي للشاشة.

ملحوظة: البعد هو مورد بسيط المشار إليه باستخدام القيمة المتوفرة في سمة الاسم (وليس اسم ملف XML). على هذا النحو، يمكنك الجمع بين موارد البعد مع موارد بسيطة أخرى في ملف XML واحد، تحت عنصر واحد.

في الأساس الوقت الوحيد الذي ينطبق فيه PX هو PX واحد، وهذا إذا كنت تريد بكسل واحد بالضبط على الشاشة مثل في حالة المقسم:

في> 160 نقطة في البيكات، قد تحصل على 2-3 بكسل،

في> 120 نقطة في البوصة، جولات إلى 0.

أقرم

بكسل - يتوافق مع البكسل الفعلي على الشاشة.

موانئ دبي أو DIP.

بكسل الكثافة المستقلة - وحدة مجردة تستند إلى الكثافة الجسدية للشاشة. هذه الوحدات نسبة إلى شاشة 160 نقطة في البوصة، لذلك DP واحد هو بكسل واحد على شاشة 160 نقطة في البوصة.

استخدام موانئ دبي:

استقلال الكثافة - تطبيقك يحقق "استقلال كثف الكثافة" عندما يحافظ على الحجم المادي (من وجهة نظر المستخدم) عناصر واجهة المستخدم عند عرضها على شاشات مع كثافات مختلفة. (أي) يجب أن تبدو الصورة بنفس الحجم (غير مكبرة أو تقلص) في أنواع مختلفة من الشاشات.

جهد

بكسل المستقلة النطاق - وهذا مثل وحدة موانئ دبي، ولكن يتم تحجيمه أيضا من تفضيل حجم خط المستخدم.

http://developer.android.com/guide/topics/resources/more-resources.html#dimension.

حيث لاستخدام ما والعلاقة بين PX & DP؟

بكسل مستقلة الكثافة (DP)

وحدة بكسل الظاهرية التي يجب استخدامها عند تحديد تخطيط واجهة المستخدم، للتعبير عن أبعاد التصميم أو الموضع بطريقة مستقلة كثافة. كما هو موضح أعلاه، تعادل البيكسل المستقل بالكثافة بكسل فعلي واحد على شاشة 160 نقطة في البوصة، وهي الكثافة الأساسية التي يفترض بها النظام لشاشة كثافة "متوسطة". عند وقت التشغيل، يعالج النظام بشفافية أي تحجيم وحدات DP، حسب الضرورة، بناء على الكثافة الفعلية للشاشة قيد الاستخدام. تحويل وحدات DP إلى شاشة البكسل بسيطة:

PX = DP * (DPI / 160).

على سبيل المثال، على شاشة 240 نقطة في البوصة، يساوي 1 موانئ دبي 1.5 بكسل الفيزيائي. يجب عليك دائما استخدام وحدات DP عند تحديد UI في تطبيق التطبيق الخاص بك، لضمان العرض المناسب ل UI الخاص بك على شاشات مع كثافات مختلفة.

فهم البكسل إلى موانئ دبي والعكس أمر أساسي للغاية (خاصة لإعطاء قيم DP الدقيقة للفريق الإبداعي)

dp = px * 160 / dpi

MDPI = 160 dpi || Therefore, on MDPI 1 px = 1 dp
For example, if you want to convert 20 pixel to dp, use the above formula,
dp = 20 * 160 / 160 = 20.
So, 20 pixel = 20 dp.

HDPI = 240 dpi - So, on HDPI 1.5 px = 1 dp
XHDPI = 320 dpi - So, on XHDPI 2 px = 1 dp
XXHDPI = 480 dpi - So, on XXHDPI 3 px = 1 dp

For example, let us consider Nexus 4.
If 24 pixels to be converted to dp and if it is a Nexus 4 screen, developers can
convert it to dp easily by the following calculation :
dp = 24 * 160 / 320 = 12 dp
Screen dimension:
768 x 1280 pixel resolution (320 ppi or 320dpi)
Optional (screen size):
 4.7" diagonal
  • محاولة للحصول على جميع قيم البكسل في الأرقام حتى من الفريق الإبداعي. خلاف ذلك الدقة تفقد سيحدث بينما يتضاعف مع 0.5.

أقرم

وأوضح أعلاه. محاولة تجنب في ملفات التخطيط. ولكن هناك بعض الحالات، حيث يلزم PX. على سبيل المثال، ListView STILL سطر. PX أفضل هنا لإعطاء خط بكسل واحد كقسمة للجميع عبر دقة الشاشة.

جهد

استخدام SP للحصول على أحجام الخطوط. ثم يتغير الخط الموجود داخل التطبيق فقط أثناء تغييرات حجم خطوط الجهاز (أي عرض -> الخطوط الموجودة على الجهاز). إذا كنت ترغب في الاحتفاظ بخط حجم ثابت داخل التطبيق، فيمكنك إعطاء البعد الخط في DP. في مثل هذه الحالة، لن يتغير أبدا. قد يحصل المطورون على شرط بعض الشاشات المحددة، لأنه يمكن للمطورين استخدام DP بدلا من SP. في جميع الحالات الأخرى، ينصح SP.

يمكنك أن ترى الفرق بين px و dp من الصورة أدناه، ويمكنك أيضا أن تجد أن px و dp لا يمكن أن تضمن نفس الأحجام المادية على الشاشات المختلفة.

enter image description here

يجب استخدام أي شيء متعلق بحجم النص والمظهر sp أو pt. وبعد في حين، يجب استخدام أي شيء متعلق بحجم الضوابط، والتخطيطات، وما إلى ذلك dp.

يمكنك استخدام كليهما dp و dip في أماكنه.

أود فقط استخدام موانئ دبي.

هناك الكثير من الحديث عن استخدام "SP" لأحجام الخطوط، وبينما أقدر النقطة، لا أعتقد أن هذا هو الشيء الصحيح الذي يجب القيام به من وجهة نظر التصميم. يمكنك أن تنتهي بكسر التصميم الخاص بك إذا كان المستخدم لديه اختيار حجم الخط المتقطع، وسوف ينتهي المستخدم باللوم التطبيق, ، وليس خيارات حياتهم الخاصة.

أيضا، إذا كنت تأخذ تطبيق SP-font على قرص 160 DPI، فستجد ذلك كل شيء ينقص ... ولكن خطك، الذي سيبدو صغيرا بالمقارنة. انها ليست نظرة جيدة.

في حين أن فكرة "SP" لديها قلب طيب، فهي فكرة سيئة. عصا مع موانئ دبي لكل شيء.

SP = مقياس البكسل المستقل

DP = DIP = بكسل الكثافة المستقلة

DPI = النقاط لكل بوصة

يجب أن نتجنب استخدام جهد.

يجب أن نستعمل دهان لدعم شاشات متعددة.

يعمل Android على يدعم دقة الشاشة المختلفة

  • LDPI (منخفض) ~ 120 نقطة في البوصة
  • MDPI (متوسط) ~ 160 نقطة في البوصة
  • HDPI (عالية) ~ 240 نقطة في البوصة
  • XHDPI (إضافي عالية) ~ 320 نقطة في البوصة
  • XXHDPI (إضافي إضافي) ~ 480 DPI
  • XXXHDPI (إضافي إضافي إضافي) ~ 640 نقطة في البوصة

يحتوي جهاز LDPI 120 DP على 120 بكسل بحجم 1 بوصة.

نفس الشيء بالنسبة للكثافة الأخرى ...

نحن كما يجب أن يستخدم مهندسو البرمجيات صيغة التحويل هذه:

بكسل = DP * (الكثافة / 160)

حتى 240 جهاز DPI 1 DP سيكون له = 1 * (240/160) = 3/2 = 1.5 بكسل.

و 480 نقطة DPI 1 DP سيكون لها = 1 * (480/160) = 3 بكسل.

باستخدام المعرفة 1.5 و 3 بكسل، يمكن لمهندس البرمجيات تصميم تخطيطات كثافة مختلفة.

للتحقق من معلمات الشاشة من أي جهاز:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

Toast.makeText(
    this,
    "4:" + metrics.heightPixels + "," + metrics.density + ","
    + metrics.densityDpi, Toast.LENGTH_LONG).show();

الفرق بين dp و sp الوحدات المذكورة باسم "تفضيل حجم خط المستخدم"من خلال الإجابات المنسوخة من الوثائق الرسمية يمكن رؤية وقت التشغيل عن طريق التغيير Settings->Accessibility->Large Text اختيار.

Large Text يفرض الخيار النص ليصبح 1.3 مرات أكبر.

private static final float LARGE_FONT_SCALE = 1.3f;

قد يكون هذا جيدا بائع بالطبع يعتمد على أنه يكمن في الحزم / التطبيقات / الإعدادات.

DPI -

  • النقاط لكل بوصة
  • قياس كثافة بكسل الشاشة.

PX - بكسل

  • لرسم خرائط البكسل الشاشة

PT - النقاط

  • حوالي 1/72 من بوصة، فيما يتعلق بحجم الشاشة الفيزيائية.

في بوصة - فيما يتعلق بحجم الشاشة الفيزيائية (1 بوصة = 2.54 سم).

MM- ميليميتر - فيما يتعلق بحجم الشاشة الفيزيائية.

SP - بكسل مستقلة.

  • بناء على تفضيل حجم الخط المستخدم.
  • يجب أن يكون الخط في "SP".

تراجع

  • DIP == DP.
  • بكسل مستقلة الكثافة.
  • إنه يختلف بناء على كثافة الشاشة.
  • في 160 شاشة DPI، 1 DP = 1 بكسل.
  • استخدم DP باستثناء حجم الخط النص.

في المعيار، يتم استخدام DP و SP. SP للحصول على حجم الخط و DP لكل شيء آخر.

صيغة لتحويل الوحدات:

PX = DP * (DPI / 160)؛

Density Bucket -> Screen Display => Physical Size        => Pixel Size                   

ldpi         -> 120 dpi          => 0.5 x 0.5 in         => 0.5 in * 120 dpi = 60x60 px   

mdpi         -> 160 dpi          => 0.5 x 0.5 in         => 0.5 in * 160 dpi = 80x80 px   

hdpi         -> 240 dpi          => 0.5 x 0.5 in         => 0.5 in * 240 dpi = 120x120 px  

xhdpi        -> 320 dpi          => 0.5 x 0.5 in         => 0.5 in * 320 dpi = 160x160 px  

xxhdpi       -> 480 dpi          => 0.5 x 0.5 in         => 0.5 in * 480 dpi = 240x240 px 

xxxhdpi      -> 640 dpi          => 0.5 x 0.5 in         => 0.5 in * 640 dpi = 320x320 px  

إليك الصيغة المستخدمة من قبل Android:

PX = DP * (DPI / 160)

حيث DPI هي واحدة من كثافات الشاشة التالية. للحصول على قائمة بجميع الكثافة الممكنة اذهب الى هنا

يحدد ثوابت "الكثافة_ *".

  • LDPI (منخفض) ~ 120DPI
  • MDPI (متوسط) ~ 160dpi
  • HDPI (مرتفع) ~ 240DPI
  • XHDPI (إضافي عالية) ~ 320dpi
  • XXHDPI (إضافي إضافي) ~ 480DPI
  • XXXHDPI (إضافي إضافي إضافي) ~ 640dpi

مأخوذ من هنا.

سيؤدي ذلك إلى فرز الكثير من الارتباك عند ترجمة PX و DP، إذا كنت تعرف الشاشة DPI.

لذلك، دعنا نقول أنك تريد صورة 60 مواسفة شاشة HDPI، ثم حجم البكسل المادي 60 DP هو:

px = 60 * (240 / 160)

حجم الشاشة في Android يتم تجميعها في الفئات small, medium, large, extra large, double-extra و triple-extra. وبعد كثافة الشاشة هي كمية البكسل داخل منطقة (مثل بوصة) من الشاشة. عموما يتم قياسها في النقاط لكل بوصة (DPI). يتم تجميع كثافة الشاشة على أنها منخفضة ومتوسطة وعالية وزيادة عالية. القرار هو إجمالي عدد البكسل في الشاشة.

  • DP: بكسل مستقل كثافة، إنه يتغير بناء على كثافة الشاشة. في 160 شاشة DPI، 1 DP = 1 بكسل. باستثناء حجم الخط، استخدم DP دائما.
  • تراجع: DIP == DP. في إصدارات Android السابقة تم استخدام DIP وتغيرت لاحقا إلى DP.
  • SP: حجم البكسل المستقل، تم تحجيمه بناء على تفضيل حجم خط المستخدم. يجب أن تستخدم الخطوط SP.
  • PX: لدينا بكسل القياسية المعتادة التي تسخر إلى شاشة بكسل الشاشة.
  • في: بوصة، فيما يتعلق بحجم الشاشة الفيزيائية.
  • مم: ملليمتر، فيما يتعلق بحجم الشاشة الفيزيائية.
  • PT: 1/72 من بوصة، فيما يتعلق بحجم الشاشة الفيزيائية.

صيغة للتحويل بين الوحدات

 px = dp * (dpi / 160)

موانئ دبي إلى PX في الجهاز

المثال التالي قد يساعد في فهم أفضل. يحدث التحجيم بناء على حجم دلو 120 (LDPI)، 160 (MDPI)، 240 (HDPI)، 320 (XHDPI)، 480 (xxhdpi) و 640 (xxxhdpi). نسبة Google المقترحة للتصميم هي 3: 4: 6: 6: 8: 12 ل LDPI: MDPI: HDPI: XHDPI: XXHDPI

سوف تشغل صورة 150px × 150 بكسل،

  • مساحة شاشة 150 DP X 150 DP في MDPI
  • 100 DP X 100 DP مساحة الشاشة في HDPI
  • مساحة شاشة 75 DP X 75 DP في XHDPI

يمكنك استخدام آلة حاسبة DPI التالية لإصلاح أحجام الصور الخاصة بك والأبعاد الأخرى عندما ترغب في الحصول على تصميم UI موحد في جميع أجهزة Android.

حاسبة DPI في جافا

/*
Program output
LDPI: 165.0 X 60.0
MDPI: 220.0 X 80.0
HDPI: 330.0 X 120.0
XHDPI: 440.0 X 160.0
XXHDPI: 660.0 X 240.0
XXXHDPI: 880.0 X 320.0
*/


public class DPICalculator {

private final float LDPI = 120;
private final float MDPI = 160;
private final float HDPI = 240;
private final float XHDPI = 320;
private final float XXHDPI = 480;
private final float XXXHDPI = 640;    

private float forDeviceDensity;
private float width;
private float height;

public DPICalculator(float forDeviceDensity, float width, float height){
    this.forDeviceDensity = forDeviceDensity;
    this.width = width;
    this.height = height;
}

public static void main(String... args) {
    DPICalculator dpiCalculator = new DPICalculator(240,330,120);
    dpiCalculator.calculateDPI();
}


private float getPx(float dp, float value) {
    float px = dp * (value / forDeviceDensity );        
    return px;
}

private void calculateDPI() {

    float ldpiW = getPx(LDPI,width);        
    float ldpiH =  getPx(LDPI,height);
    float mdpiW = getPx(MDPI,width);        
    float mdpiH =  getPx(MDPI,height);        
    float hdpiW = getPx(HDPI,width);        
    float hdpiH =  getPx(HDPI,height);       
    float xdpiW = getPx(XHDPI,width);        
    float xdpiH =  getPx(XHDPI,height);
    float xxdpiW = getPx(XXHDPI,width);        
    float xxdpiH =  getPx(XXHDPI,height);
    float xxxdpiW = getPx(XXXHDPI,width);        
    float xxxdpiH =  getPx(XXXHDPI,height);

    System.out.println("LDPI: " + ldpiW + " X " + ldpiH);
    System.out.println("MDPI: " + mdpiW + " X " + mdpiH);
    System.out.println("HDPI: " + hdpiW + " X " + hdpiH);
    System.out.println("XHDPI: " + xdpiW + " X " + xdpiH);
    System.out.println("XXHDPI: " + xxdpiW + " X " + xxdpiH);
    System.out.println("XXXHDPI: " + xxxdpiW + " X " + xxxdpiH);        
   }
}

مزيد من المعلومات الرجوع بعد الرابط.

http://javapapers.com/android/difference-between-dp-dip-sp-px-in-mm-pt-in-android/

  • PX - بكسل واحد، مثل ما يستخدم في CSS، جافا سكريبت، إلخ.
  • SP - بكسل المستقلة
  • تراجع - بكسل الكثافة المستقلة

عادة يتم استخدام SP لأحجام الخطوط، في حين يتم استخدام تراجع (يسمى أيضا DP) للآخرين.

يرجى قراءة الجواب من المجتمع ويكي. أدناه المذكورة هي بعض المعلومات التي يجب اعتبارها بالإضافة إلى الإجابات أعلاه.

SP = مقياس البكسل المستقل

DP = الكثافة المستقلة بكسل

DPI = بكسل الكثافة

لقد مرت بالإجابات المذكورة أعلاه ... عدم العثور عليها صحيحة بالضبط. SP لحجم النص، موانئ دبي للأهداف تخطيط - معيار. ولكن SP لحجم النص سوف كسر التصميم إذا استخدمت بلا مبالاة في معظم الأجهزة.

SP تأخذ نصوص الجهاز، في حين أن موانئ دبي تأخذ معيار كثافة الجهاز (لا تتغير أبدا في الجهاز)، فإن نص 100SP يمكن أن يشغل 80٪ من الشاشة أو 100٪ من الشاشة اعتمادا على حجم الخط تعيين في الجهاز

enter image description here

يمكنك استخدام SP للحصول على حدود التخطيط أيضا، وسيعمل :)لا يوجد تطبيق قياسي استخدم Sp لكامل النص

استخدم SP و DP لحجم النص بالنظر إلى UX.

  • لا تستخدم SP للنص في شريط الأدوات (يمكن استخدام Android Dimens المتاحة لأحجام الشاشة المختلفة مع DP)
  • لا تستخدم SP للنص في أزرار صغيرة محصيلها، نص أصغر جدا، إلخ

يستخدم بعض الأشخاص بحجم خط ضخم في هواتفهم للحصول على قابلية القراءة، مما يمنحهم نص صغير صغير الحجم سيكون مشكلة UX. ضع SP للنص عند الضرورة، ولكن تأكد من عدم كسر التخطيط.

وبالمثل إذا كان لديك تطبيق واحد يدعم جميع الأبعاد، فإن إضافة أصول XXXHDPI تزيد من حجم التطبيق كثيرا. ولكن الآن هواتف XXXHDPI شائعة بحيث يتعين علينا تضمين أصول XXXHDPI على الأقل للحصول على الرموز في شريط جانبي، شريط الأدوات والشريط السفلي. من الأفضل الانتقال إلى الصور المتجهية للحصول على صور عالية الجودة وأفضل لجميع أحجام الشاشة.

لاحظ أيضا أن الناس يستخدمون خط مخصص في هواتفهم. لذلك فإن عدم وجود خط قد يسبب مشاكل بشأن التباعد وكلها. قل حجم النص 12SP لخط مخصص قد يستغرق بعض البكسلات إضافية من الخط الافتراضي.

الرجوع إلى موقع Google Developer لتفاصيل Setensensities و S الموجودة على نظام Android.https:/developer.android.com/training/multiscreen/screendensities.

لقد عثرت على مقالة جيدة حول تصميم واجهة مستخدم لتطبيقات Android لدرجات دقة شاشة مختلفة، وأود أن أتركها هنا فقط لشخص يبحث في هذا المجال.نعم، أعلم أنه موصوف بطريقة ما في مستندات Google (والمذكور في المنشورات أعلاه)، قرأت ذلك ولكنه لم يكن جيدًا بالنسبة لي (نعم، ربما أكون غبيًا جدًا)).بقي من غير الواضح بالنسبة لي كيفية تصميم تخطيطات قادرة على التعامل مع أحجام مختلفة للشاشة.أنا أكره مفهوم DP وما إلى ذلك، عندما أحتاج إلى تنفيذ تخطيط واجهة مستخدم "مرن" لشاشات مختلفة.(مرحبًا مطوري iOS - نعم، أنت على حق، إنه مفهوم القصة المصورة).

لا يمتلك Android مفهومًا سيئًا لواجهة المستخدم، ولكنه يفتقر إلى ميزات iOS Storyboard، للأسف.إن تصميم واجهة مستخدم مرنة في Android ليس بالأمر السهل (في أحسن الأحوال).

فيما يلي المقالة التي ساعدتني على فهم ما يجب فعله في Android لإنشاء تخطيطات لأحجام مختلفة للشاشات:

مدونة JMSTUDIO: - تحديد حجم شاشة تطبيق Android

كيفية تصميم واجهة المستخدم لتطبيقات Android لأحجام مختلفة للشاشة

لتصميم واجهة مستخدم تطبيق لأحجام شاشات مختلفة ، يجب أن يكون تصميمنا الأولي تلبية الحد الأدنى من المساحة المطلوبة لكل حجم شاشة.يعرف Android الحد الأدنى للحجم (بالموانئ الدبلية) لكل نوع شاشة معمم.هنا إرشادات حجم شاشة Android. Minimum Screen Size for Android in dp عندما نحصل على حجم الشاشة في dp ، لا يكفي أن نصمم واجهة مستخدم تطبيق Android.لكل حجم شاشة ، نحتاج إلى إعداد الرسومات والصور النقطية لكل كثافة.هنا كثافة شاشة Android إرشادات. Android Density Guideline (dpi)

لسهولة الحساب ، يمكننا متابعة نسبة التحجيم 3: 4: 6: 8 بين الكثافة الأربع المعممة.إذا أنشأنا صورة 36×36 بكسل ل جهاز LDPI ، سيكون حجم صور الكثافات المتبقية 48×48 ل MDPI ، 72×72 ل HDPI و 96×96 ل XHDPI.

كيفية تصميم واجهة مستخدم تطبيقات الأندرويد بالفوتوشوب

يواجه العديد من المصممين مشاكل في تصميم واجهة مستخدم تطبيق Android في Photoshop أو بكسل آخر أدوات التصميم الجرافيكي القائمة بسبب الوحدة المستقلة عن الكثافة ، DP.لا يعرف المصممون كيفية تعيين dp إلى بكسل.جوجل أيضا لا تعطي دليل تصميم واجهة مستخدم Android واضح لهم ، على الرغم من أنهم يقدمون أساسية صيغة لترجمة DP و Pixel.

وفقًا لتعريف Android، 1pd يساوي 1 بكسل أقل من 160 نقطة في البوصة (mdpi).لذلك نريد تصميم تطبيق Android لجهاز Android xlarge باستخدام كثافة mdpi ، يمكننا تحديد حجم واجهة المستخدم بالبكسل على أنه 960 بكسل في العرض وارتفاع 720 بكسل ؛اتبع نفس قاعدة التعيين ، يمكننا الحصول على اتباع إرشادات تصميم واجهة مستخدم حجم شاشة تطبيق Android:

Android App Screen Size in Pixel Guideline

تمت الإضافة:إذا كنت مهتمًا بواجهة المستخدم "المرنة" أيضًا، فقم بإلقاء نظرة على هذه المكتبة: Android SDK الذي يوفر وحدة حجم جديدة - sdp (dp قابلة للتطوير).وحدة الحجم هذه تتدرج مع حجم الشاشة (هذا مذكور أيضًا في إجابة هنا، حول SDP مكتبة)

تمت الإضافة2 لقد فهمت Google أخيرًا فائدة مفهوم iOS Storeboard UI، وهنا ConstraintLayout لعالم الاندرويد: أنشئ واجهة مستخدم سريعة الاستجابة باستخدام ConstraintLayout

1) dp: (density independent pixels)

يزداد عدد البكسل الممثلة في وحدة واحدة من موانئ دبي كزيادة دقة الشاشة (عندما يكون لديك المزيد من النقاط / بكسل في البوصة). وعلى العكس على الأجهزة ذات الدقة الدقيقة، فإن عدد البكسل الممثلة المتمثلة في وحدة DP سينخفض. نظرا لأن هذه وحدة نسبية، فإنها تحتاج إلى أن يكون لها خط أساس مقارنة به. هذا الأساس هو شاشة 160 نقطة في البوصة. هذه هي المعادلة: px = dp * (dpi / 160).


2) sp: (scale independent pixels)

هذه الوحدة المقاييس وفقا لشاشة DPI (على غرار موانئ دبي) بالإضافة إلى تفضيل حجم خط المستخدم.


3) px: (pixels)

بكسل أو النقاط الفعلية على الشاشة.


لمزيد من التفاصيل التي يمكنك زيارة

دليل مطور الروبوت> البعد
دليل المطور أندرويد> شاشات

حجم الشاشة يتم تجميع في Android في الفئات ldpi, mdpi, hdpi, xhdpi, xxhdpi و xxxhdpi. كثافة الشاشة هو مقدار البكسل داخل منطقة (مثل بوصة) من الشاشة. عموما يتم قياسها في النقاط لكل بوصة (dpi).

PX(Pixels):

  • لدينا بكسل القياسية المعتادة التي تسخر إلى شاشة بكسل الشاشة. px هو المقصود عن البكسل المطلق. يستخدم هذا إذا كنت ترغب في إعطاء من حيث البكسل المطلق للعرض أو الارتفاع. لا ينصح.

DP/DIP(Density pixels / Density independent pixels):

  • dip == dp. وبعد في إصدارات Android السابقة تم استخدام DIP وتغييرها لاحقا إلى dp. وبعد هذا بديل px.

  • عموما نحن لا نستخدم أبدا px لأنها قيمة مطلقة. كما ترى px لتعيين العرض أو الارتفاع، وإذا تم تنزيل هذا التطبيق إلى أجهزة مختلفة من الشاشة، فلن تمتد هذا العرض حسب الحجم الأصلي للشاشة.

  • dp ينصح بشدة باستخدام بدلا من px. وبعد يستخدم dp إذا كنت تريد أن تذكر العرض والارتفاع للنمو وتقليصه بشكل حيوي بناء على أحجام الشاشة.

  • إذا أعطينا dp/dip, ، سيقوم Android بحساب حجم البكسل تلقائيا على أساس شاشة بحجم 160 بكسل.

SP(Scale independent pixels):

  • تحجيم بناء على تفضيل حجم خط المستخدم. يجب أن تستخدم الخطوط sp.

  • عند ذكر أحجام الخطوط لتناسب أحجام الشاشة المختلفة، استخدم sp. وبعد هذا يشبه dp.يستخدم sp خاصة بالنسبة لأحجام الخطوط للنمو وتقليصها بشكل حيوي بناء على أحجام الشاشة

وثائق أندرويد يقول:

عند تحديد الأبعاد، استخدم دائما أيضا dp أو sp وحدات. أ dp هو بكسل مستقل كثافة يتوافق مع الحجم المادي بكسل في 160 dpi. وبعد أ sp هي نفس الوحدة الأساسية، ولكن يتم تحجيمها بحجم النص المفضل للمستخدم (إنها بكسل مستقلة)، لذلك يجب عليك استخدام وحدة القياس هذه عند تحديد حجم النص

تتكون شاشة الهاتف المحمول من الآلاف من النقاط الصغيرة المعروفة باسم بكسل (PX). وبعد بكسل هو أصغر عنصر يذهب لجعل الصورة. كلما زاد عدد البكسلات لصنع صورة أو صياغة، يصبح أكثر وضوحا ويجعل شاشة الهاتف الذكي قابلة للقراءة بسهولة أكبر.

يتم قياس دقة الشاشة من حيث عدد البكسلات على الشاشة. دقة الشاشة هي مواصفات شائعة الاستخدام عند شراء جهاز، لكنها في الحقيقة ليست مفيدة عند التصميم لنظام Android لأن التفكير في الشاشات من حيث البكسل يتجاهل فكرة الحجم المادي، والتي بالنسبة لجهاز اللمس مهم حقا.

بكسل الكثافة المستقلة (DP أو DIP) اسمح للمصمم بإنشاء أصول تظهر بطريقة متوقعة، بغض النظر عن حل الجهاز المستهدف أو الكثافة.

البكسل المستقل الكثافة (DP أو DIP) يساوي بكسل واحد في الكثافة الأساسية أو 160 نقطة في البوصة (النقاط لكل بوصة).

1 PX / 1DP = 160 DPI / 160 DPI

2 px / 1dp = 320 نقطة في البوصة (2x) / 160 نقطة في البوصة

أين،

DPI هو النقاط لكل بوصة

لذلك، في 320 نقطة في البوصة، 1 موانئ دبي يساوي 2 PX.

معادلة

PX / DP = DPI / 160DPI

النقاط لكل بوصة (DPI) هي مقياس للحدة (أي كثافة النقاط المضيئة) على شاشة عرض. تختلف النقاط لكل بوصة لتحليل صور معين بناء على حجم الشاشة العام لأن نفس العدد من البكسل يجري تنتشر على مساحة مختلفة.

العمل مع الكثافة المستقلة بكسل ساعدنا في التعامل مع موقف مثل حيث لديك جهازين من نفس الدقة بكسل، ولكن كمية مختلفة من المساحة. لنفترض في القضية، يحتوي الجهاز اللوحي والهاتف على نفس قرار البكسل 1280 بمقدار 800 بكسل (160 نقطة في البكسل) و 800 بحلول 1280 بكسل (320 نقطة في البيكسل) على التوالي.

الآن لأن جهاز الكمبيوتر اللوحي في كثافة أساسية (160 نقطة في البوصة)، فإن أحجام البكسلات المستقلة المادية والكثافة هي نفسها، 1280 بحلول 800. الهاتف من ناحية أخرى لديه كثافة بكسل أعلى، لذلك لديها نصف كثافة بكسل الكثافة المستقلة مثل المادية بكسل. لذلك يحتوي الهاتف على 400 بكسل 640 بكسل مستقل. لذلك باستخدام بكسل مستقل كثافة يجعل من الأسهل على الصورة العقلية التي يحتوي على مساحة أكبر بكثير من الهاتف.

وبالمثل، إذا كان لديك جهازين من حجم شاشة مشابه، ولكن كثافة بكسل مختلفة، قل واحدة هي 800 بحجم 1280 بكسل (320 نقطة في البيكسلات (320 نقطة في البكسل)، والآخر هو 400 من 640 بكسل (160 نقطة في البكسل)، لسنا بحاجة إلى تحديد تماما تخطيطات مختلفة لهذين الجهازين حيث يمكننا قياس الأصول من حيث الكثافة البكسل المستقلة التي هي نفسها لكلا الجهازين.

800 بحلول 1280 بكسل (320 نقطة في البيكسلات) = 400 بحلول 640 بكسل مستقل (DP)

400 بحلول 640 بكسل (160 نقطة في البيكسلات (160 نقطة في البيكات) = 400 من 640 بكسل مستقل (DP)

حجم البكسل المستقلة (SP) هي الوحدة المفضلة لحجم الخط. لأغراض إمكانية الوصول، يتيح Android للمستخدمين تخصيص حجم خط جهازهم. يمكن للمستخدمين الذين لديهم مشكلة في قراءة النص زيادة حجم خط الجهاز. يمكنك عادة العثور على هذا الخيار في إعداد العرض على هاتفك أو جهازك اللوحي ضمن حجم الخط. غالبا ما تكون متوفرة أيضا من خلال إعدادات إمكانية الوصول.

بمستوى وحدات البكسل المستقلة، 16 SP هو نفسه تماما مثل 16 مواسير عندما يكون حجم خط الجهاز أمر طبيعي أو 100٪. ولكن عندما يكون حجم خط الجهاز كبيرا، على سبيل المثال 125٪، سوف يترجم 16 SP إلى 20 مواسير أو 1.25 مرة 16.

إذا كنت تستخدم DP كوحدة بحجم الخط، فإن هذا النص يحتوي على حجم مادي محدد بغض النظر عما إذا كان المستخدم لديه تخصيص حجم خط الجهاز. سوف يؤدي استخدام وحدات SP إلى تجربة أفضل للأشخاص الذين يعانون من ضعف البصر.

مرجع: uedacy, ، غوغل

SP: مقياس بكسل مستقلة

يجب عليك استخدامه مع النصوص لأنه يتم تحجيمه تلقائيا وفقا لحجم الخط الذي يستخدمه المستخدم في جهازه.

Px: عنصر البكسل أو الصورة هو نقطة واحدة على الشاشة

قبل الإجابة على هذا السؤال، اسمحوا لي أن تقلل من عدد الوحدات أولا. حتى هنا تذهب: موانئ دبي أو DIP. كلاهما هو نفسه والمعروفة باسم بكسل المستقلة الكثافة.

1. PX. - تقف لحضور البكسل. بكسل هي نقطة واحدة، ونقطة على الشاشة. بشكل عام في صناعة الأجهزة المحمولة، يتم قياسها في مؤشر أسعار المنتجين (بكسل في البوصة). قرار الشاشة يتناسب مباشرة مع مؤشر أسعار المنتجين، أكبر عدد من البكسل لكل بوصة كلما ارتفعت دقة الشاشة.

على سبيل المثال، إذا قمت برسم صورة بحجم 200 قدم * 200 قدم, ، ثم يجب أن يكون مظهره مختلفا على جهاز عالية الدقة مقابل جهاز منخفض الدقة. السبب هو 200 قدم سوف تبدو الصورة على هاتف منخفض الدقة أكبر من جهاز عالية الدقة.

تظهر أدناه صور دقة نفس الصورة على هواتف مختلفة -

  • الهاتف مع دقة عالية الشاشة

    Enter image description here

  • الهاتف مع دقة شاشة منخفضة

    Enter image description here

2. تراجع أو موانئ دبي - وحدة مجردة تستند إلى الكثافة الجسدية للشاشة. هذه الوحدات نسبة إلى 160 شاشة DPI، لذلك DP واحد هو بكسل واحد على 160 شاشة DPI. ستتغير نسبة DP-To-Pixel مع كثافة الشاشة، ولكن ليس بالضرورة في نسبة مباشرة. يشير "استقلال الكثافة" إلى عرض موحدة لعناصر واجهة المستخدم على الشاشات ذات الكثافة المختلفة.

  • الصورة التي تظهر 80PX (صورة الجانب الأيسر) و 80 DP (صورة الجانب الأيمن). وبعد الفرق الخروج.

Enter image description here

موانئ دبي يساوي بكسل مادي واحد على شاشة مع كثافة 160. وبعد لحساب DP:

DP = (عرض في بكسل * 160) / كثافة الشاشة

3. Sp. - تقف على وحدات البكسل القابلة للتطوير. عموما جهد يستخدم للنصوص على واجهة المستخدم، و جهد يحافظ على إعدادات الخط. على سبيل المثال، إذا كان المستخدم قد حدد خطا أكبر من 30 Sp. سوف يظهر مقياس تلقائي كبير وفقا لتفضيل المستخدم.

أريد تقديم طريقة سهلة لفهم dp. وبعد في الواقع، أعتقد dp هو أسهل واحد لفهم. dp هو مجرد وحدة طول المادية. انها نفس البعد كما mm أو inch. وبعد انها مجرد مريحة بالنسبة لنا أن نكتب 50dp, 60dp بدلا من 50/160 inch أو 60/160 inch, ، لأن واحد dp انه ببساطة 1/160 inch مهما كان حجم الشاشة أو القرار هو.

المشكلة الوحيدة هي أنه، فإن نظام Android DPI من بعض الشاشات غير دقيقين. على سبيل المثال، قد تحتوي الشاشة المصنفة على 160 نقطة في البوصة 170 نقطة في البوصة بالفعل. لذلك نتيجة حساب dp غامض. يجب أن يكون تقريبا نفس 1/160 inch.

SDP. - وحدة الحجم القابلة للتطوير - أساسا أنها ليست وحدة، ولكن موارد البعد لحجم الشاشة المختلفة.

جرب ال SDP. مكتبة من intuit. انها مفيدة جدا لحل مشاكل الوحدة، ويمكنك ذلك دعم بسرعة شاشات متعددة.

الاستعمال

android:paddingBottom="@dimen/_15sdp" للإيجابية و android:layout_marginTop="@dimen/_minus10sdp" لسالب SDP SDP

لديها قيمة معادلة في موانئ دبي لكل حجم في values-sw<N>dp المجلدات (SW = smallestwidth).

انتباه

استخدامها بعناية! في معظم الحالات، لا تزال بحاجة إلى تصميم تخطيط مختلف للأجهزة اللوحية.

مثال

<LinearLayout
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginTop="@dimen/_minus10sdp"
          android:paddingBottom="@dimen/_15sdp"
          android:orientation="horizontal" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:includeFontPadding="false"
                    android:text="♡"
                    android:textColor="#ED6C27"
                    android:textSize="@dimen/_70sdp"
                    android:textStyle="bold" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:includeFontPadding="false"
                    android:text="U"
                    android:textColor="@android:color/black"
                    android:textSize="@dimen/_70sdp" />
            </LinearLayout>

يمكنك استخدام DB لحجم النص، لكنني أفضل SSP. لحجم النص.

لمزيد من التفاصيل، تحقق صفحة المكتبة جيثب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top