بسم الله الرحمن الرحيم
تصلني اسئلة كثيرة عن الوحدات والفرق بينها أثناء البرمجة .. وفي هذه التدوينة إن شاء الله سوف أحاول شرحها باختصار, وهي مهمة لجعل تطبيق متوافق تماماً مع شاشة الجهاز التي تقوم بعرضه.
في البداية شاشات الاجهزة تقاس غالباً بوحدة البوصة in انش, والجوالات غالبيتها بين 3 إلى 5 انش. ووحدة البوصة تساوي : 1 انش يساوي 2.54 سم.
أكثرها استخدام dp وهي تساوي تقريباً 1 بيكسل على شاشة 160 dpi . وتستخدم لكل العناصر سواء كان في الحجم او النص إلخ..
ولكن ما يميزها هي ما تجعل تطبيقك يتوافق مع أحجام شاشات مختلفة .
sp / تستخدم للنصوص وهي تماماً مثل وحدة dp وهي اختصار لـ scale-independent pixels.
px / وهي وحدة واضحة اي تساوي واحد بيكسل.
dip / تستخدم لأي شيء, وهي تساوي dp ,واختصار لـ Density-independent pixels .
pt / وهي تساوي 1 على 72 نقطة من البوصة. مقارنة بالحجم الحقيقي للشاشة.
mm / وحدة واضحة ومستخدمة, مليمتر.
***
ما نقصده بـ dpi هو Dots Per Inch وتعني نقطة في البوصة, ومن هذا نعرف إن الدقة قد تغير من احجام العناصر والنصوص, مثال, لدينا شاشتين بنفس الحجم , إحداها في دقة عالية dpi و الاخرى دقة منخفضة, إذا هكذا سوف يتغير قيمة البكسل لهذه الشاشة, لأن البكسل يعتمد على دقة الشاشة وحجمها.
كما ذكرت سابقاً البكسل هو واحد بالنسبة لـ 160 dpi , إذا لو كانت دقة الشاشة 120 dip سوف يكون البكسل بقيمة 0.75 وهكذا ..
من خلال تصفحي عن هذا الموضوع, وجدت هذا الموقع : http://pixplicity.com/dp-px-converter/
للحساب بين الوحدات, تعطيه مثلاً قيمة النص 18sp ويعطيك كم ستكون هذه القيمة في الاجهزة التي دقتها عالية او منخفظة, وكم ستكون بالواحدت الاخرى كم تساوي, وهكذا تستطيع ان تعرف مدى توافق مشروعك في الاجهزة المختلفة. ونلاحظ ان البكسل هو الذي يختلف باختلاف الجودة ” الدقة ” بين الشاشات.
مقتبس مختصر باللغة الانجليزية
- dp: Density Independent Pixel, it varies based on screen density . In 160 dpi screen, 1 dp = 1 pixel. Except for font size, use dp always.
- dip: dip == dp. In earlier Android versions dip was used and later changed to dp.
- sp: Scale Independent Pixel, scaled based on user’s font size preference. Fonts should use sp.
- px: our usual standard pixel which maps to the screen pixel.
- in: inches, with respect to the physical screen size.
- mm: millimeters, with respect to the physical screen size.
- pt: 1/72 of an inch, with respect to the physical screen size.
لمزيد من المعلومات , راجعها من الرابط الرسمي : اضغط هنا
الموضوع جداً جميل , لكن أنصحك كـ مبتدئ أن لا تتعب نفسك به, ولكن إذا رأيت أنك تريد احتراف هذا المجال فتعلم هذه القيم ومعناها وكيفية استخدامها, فإنا على يقيين أن أغلبية المبرمجين يبرمجون بها ولكن دون الاستفادة الكاملة منها.
كما أنصح بمراجعتها من الموقع الرسمي, و بالتوفيق لكم جميعاً أصدقائي .. وفي أمان الله ~
شكرا 🙂