تفاوت dp و px در برنامه نویسی اندروید
1399-06-30

تفاوت dp و px در برنامه نویسی اندروید

واحد های اندازه گیری اندروید

امروز می خوایم در این مقاله برای شما در مورد واحدهای اندازه گیری در برنامه نویسی اندروید صحبت کنیم.
می خواهیم بدانیم چه تعداد واحدهای اندازه گیری در اندروید وجود دارد. همینطور به بررسی تفاوت dp و px در برنامه نویسی اندروید بپردازیم.

مفهوم density و dpi

منظور از Density تعداد پیکسل هایی است که در یک اینچ از صفحه نمایش قرار می گیرند. هر چه تعداد پیکسل ها در هر اینچ بیشتر باشند رزولوشن صفحه بیشتر بوده و دستگاه از کیفیت نمایش بیشتری برخوردار خواهد بود. برای اندازه گیری میزان این چگالی از واحد dpi که مخفف Dots per inch میباشد، استفاده میشود.
در  density pixel مربوط به هر صفحه نمایش را میتوان بر اساس اندازه و resolution محاسبه کرد. سیستم عامل اندروید صفحه نمایش ها را بر اساس density pixel به شش دسته تقسیم میکند:
  • Low density (ldpi) — 120 dpi
  • Medium density (mdpi) — 160 dpi
  • High density (hdpi) — 240 dpi
  • Extra High density (xhdpi) — 320 dpi
  • Extra Extra High density (xxhdpi) — 480 dpi
  • Extra Extra Extra High density (xxxhdpi) — 640 dpi

 

آموزش اندروید

 

انواع واحدهای اندازه گیری در اندروید

در توسعه اپلیکیشن برای سیستم عامل اندروید، برای مشخص کردن عناصر روی صفحه مثل دکمه ها، فاصله ما بین عناصر روی صفحه از واحدهای اندازه گیری متفاوتی میتوان استفاده کرد. در برنامه نویسی اندروید چهار واحد اندازه گیری وجود دارد:
  1. dp (Device Independent Pixel​​​​

این واحد اندازه گیری هم به صورت dip و هم به صورت dp نوشته می شود. در حقیقت dip یک واحد پیکسلی مجازی است که بر اساس یک صفحه نمایش با رزولوشن 160 dpi طراحی شده است. به عبارت دیگر یک dip معادل با یک پیکسل در یک صفحه نمایش که دارای 160 نقطه در هر اینچ است می باشد. چنانچه کلیه عناصر در یک layout را در توسعه اندروید بر حسب dip تعیین کنیم، این اطمینان را خواهیم داشت که به طور مثال یک دکمه در دستگاه هایی با صفحه هایی با تراکم متفاوت به طور متناسب بزرگ یا کوچک خواهد شد.
  1. sp (Independent PixelScale)  

نحوه عملکرد واحد sp همانند dip است با این تفاوت که واحد اندازه گیری sp تنظیمات دستگاه اندرویدی را نیز برای نمایش متن ها، مد نظر قرار می دهد. به عنوان مثال فرض کنیم که فرد کهنسالی یک گوشی با سیستم عامل اندروید دارد و از آنجا که او دارای بینایی ضعیفی است و تنظیمات تلفن همراهش به نحوی است که تمامی کلمات را بزرگ تر از حد معمول نمایش می دهد. حال اگر ما اپلیکیشنی طراحی کنیم که از واحد اندازه گیری dip در UI آن استفاده شده باشد و اگر همان شخص این اپلیکیشن  را نصب کند به هیچ وجه قادر نخواهد بود تا اندازه فونت ها را بزرگ تر از آنچه ما تعریف کرده ایم تغییر دهد.
  1. pt (Point)

هر Point معادل ۰٫۰۱۳۸۳ اینچ و یا ۰٫۳۵۲۵ میلیمتر است. این واحد به dpi ربطی ندارد و در همه دستگاه ها هم اندازه میباشد.
  1. px (Pixel)

برابر باpixcel  واقعی روی صفحه نمایش میباشد..
نکته: در صورت استفاده از واحدهای dp و sp برای view ها اندازه آنها متناسب با دستگاه تنظیم میشود. اگر از pt استفاده کنیم اندازه هر viewدر همه دستگاهها برابر است و اگر از px استفاده کنیم اندازه ها بر اساس رزولوشن صفحه نمایش تنظیم میشود.

 

 تبدیل  dp به px

از آنجا که اندازه view ها و فاصله بین آنها در هر صفحه نمایش باید بر حسب پیکسل محاسبه شود و واحد اندازه گیری dp بر اساس یک صفحه نمایش با رزولوشن 160 dpi طراحی شده است. سیستم عامل اندروید برای محاسبه اندازه view ها و فاصله بین آنها بر حسب پیکسل در صفحه نمایش های مختلف از فرمول زیر استفاده می کند:

Actual Pixel= dp*(dpi /160 )

که dpi در آن یکی از مقادیر 120 ،160 ،240 ، 320 ،480 و یا 640 است. به عنوان مثال اگر شما مقدار width یک Button را 12dp قرار دهید اندازه width آن در یک صفحه نمایش با density معادل 240 dpi  برابر 18 پیکسل میباشد.

کلام آخر:

امیدواریم که از این مقاله نهایت استفاده را برده باشید و از آن در برنامه نویسی موبایل استفاده کنید.

 

مقالات مرتبط

pug (پاگ) چیست و از آن چه میدانید؟

pug (پاگ) چیست
مرضیه فتاحی
10

حتما اسم پاگ را شنیده اید اما در دنیای برنامه نویسی چه میکند؟ با ما همراه شوید تا هر آنچه که درباره pug چیست را میخواهید، برایتان ارائه دهیم. پیشنهاد میکنم این مطلب را از دست ندهید.

مطالعه مقاله

چگونه یک طراح وب موفق شوم؟

روش هایی که شما را طراح وب حرفه ای می کند!
فاطمه گلشنی پایدار
10

در این مطلب یاد خواهید گرفت که راه و رسم طراح وب حرفه ای چگونه می باشد.

مطالعه مقاله

سیستم مدیریت پایگاه داده یا DBMS چیست

انواع سیستم های مدیریت پایگاه داده
زهرا چگینی
10

با خواندن مطلب سیستم مدیریت پایگاه داده، می توانید با وظایف و نحوه عملکرد آنها آشنا شوید و بدانید که استفاده کردن از DBMS ها چه مزایا و معایبی دارد.

مطالعه مقاله

saas چیست؟ سرویس مبتنی بر فضای ابری

Software as a Service چه کاربردی دارد؟
زهرا چگینی
10

شما با سرویس مبتنی بر فضای ابری آشنا هستید؟ مطلب امروز ما در مورد یکی از این سرویس ها به نام saas می باشد، ما بررسی کرده ایم که saas چیست و چطور می توانید از آن استفاده کنید.

مطالعه مقاله

14 مورد از پرفروش ترین کتاب های پایتون که باید بخوانید

14 کتاب برتر آموزش پایتون از مبتدی تا حرفه ای
رکسانا طالبی
10

14 کتاب برتر آموزش زبان برنامه نویسی پایتون از مبتدی تا حرفه ای

مطالعه مقاله

قدرت زبان پایتون در چیست؟

قدرت زبان پایتون
زهرا چگینی
10

زبان پایتون در طراحی اپلیکیشن و برنامه نویسی تحت وب و نرم افزار های مهندسی مورد استفاده قرار گرفته است. اما چه چیزی باعث قدرت زبان پایتون شده است.

مطالعه مقاله