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

تفاوت dp و px در برنامه نویسی اندروید
تاریخ بروزرسانی : 30 شهریور 1399 | تعداد بازدید : 5507 | زمان خواندن مقاله : 10دقیقه
اندروید،
امروز می خوایم در این مقاله برای شما در مورد واحدهای اندازه گیری در برنامه نویسی اندروید صحبت کنیم.
می خواهیم بدانیم چه تعداد واحدهای اندازه گیری در اندروید وجود دارد. همینطور به بررسی تفاوت 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 پیکسل میباشد.

کلام آخر:

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

 


کلمات کلیدی :
اندروید