دوست عزیز درمورده سوال اول شما اینکه این سایزها چطور بدست می آد یه استانداردهایی هست که بیشتر شرکتهای سازنده گوشی سعی میکنند که حدالامکان رعایت کنند(اجباری نیست )..میتونید با سرچ ساده تقریبی از سایزهای گوشی ها رو بدست آورید..مثلا واسه عرض گوشی بیشتر (240_320_480_720_1024) استفاده میکنند...
میتونید همون طور که آدمین گفت از درصد استفاده کرد ...اما اینکه گفتید از سمت راست نمایش میده بخاطر اینه که دقت کنید ما یک LinearLayout به صورت داینمایک ساختیم چون بهش gravity یا margin ....ندادیم از به صورت پیش فرض از گوشه سمت چپ شروع میکنه.اگر با این نوع آشنایی ندارید .از روش زیر استفاده کنید..
فرض میکنیم شما جایگاه و نحوه ی قرار گیری دکمه ها رو در Xml انجام دادید فقط مشکل در سایز بندی آن است..کافیه
کد پیاچپی:
Button b1=(Button)findViewById(R.id.button1);
ViewGroup.LayoutParams params = b1.getLayoutParams();
میاد LayoutParams دکمه رو میگیره از صفحه...
حالا کافیه سایزه دلخواهتون بدید بهش.
کد پیاچپی:
params.width = 600;
b1.setLayoutParams(params);
حالا با همون اندازه های استاندارد یک دستور if بندازید سایزها رو تغییر دهید..
کد پیاچپی:
if(width<320)
praams.width=120;//سایز دلخواهتون بزارید
else if (width<480)
params.width=160;
......
.
.
b1.setLayoutParams(params);
مشکلتون حل میشه..
درمورده سوال سوم که از چه روشی استفاده میکنیم؟..بستگی به نوع پروژه که داریم .اگر برنامه رو واسه ارگان یا سازمانی بزنید خب عملا باید برای حرفه ای نشان دادن برنامه این ریزه کاری ها رو میشه انجام داد..اگر نه یک اپ ساده برای مارکتینگها میخواهید بسازید بازهم بنابر نوع عملکرد برنامه . همان طور که آدمین جان گفت درگیر کد نمیشن و بیشتر از حالت تقریب استفاده میکنند..
موفق باشید..