طراحی چند لایه برای یک اکتیویتی
نظرتون درباره این چیه
مثلا اگه سایز گوشی از 7 پایین تر بود یک لایه رو نشون بده و اگه برابر یا بزرگ تر از 7 بود لایه دیگه رو نشون بده
اول سایز گوشی رو میگیریم بعد میگیم کدوم رو نشون بده
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DisplayMetrics dm1 = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm1);
double x = Math.pow(dm1.widthPixels / dm1.xdpi, 2);
double y = Math.pow(dm1.heightPixels / dm1.ydpi, 2);
double screenInches = Math.sqrt(x = y);
if (screenInches < 7) {
setContentView(R.layout.smartphone);
Toast.makeText(getApplicationContext(), "sc < 7", Toast.LENGTH_LONG).show();
} else {
setContentView(R.layout.tablet);
Toast.makeText(getApplicationContext(), "sc > 7", Toast.LENGTH_LONG).show();
}
خود اندروید این قابلیت رو پیشبینی کرده
همونطور که ما برای منابع هنری ، پوشه هایی مثل xhdpi , hdpi , mdpi , ldpi داریم برای UI ها هم مشابه این پوشه ها رو میتونیم موازی با همون پوشه layout با نام های زیر درست کنیم:
layout-xlarge
layout-large
layout-small
و یا اگه اشتباه نکنم مثلا برای صفحات بالای 720dp (فکر کنم بالای 10 اینچ ) یه همچین پوشه ای:
layout-sw720dp
و برای عرض 600dp (بالای 7 اینچ) :
layout-sw600dp
جالبه که حتی میتونید حالت landscape هم توش جداگانه طراحی کنید مثلا پوشه زیر برای سایز صفحه xlarge و حالت landscape ه :
layout-xlarge-land
همچنین شما میتونید برای مقادیر پوشه value هم همین کارو کنید مثلا:
values-sw600dp
values-sw720dp
فقط دقت کنید که اسم فایلهای xml و id عناصری که توی کد هاتون بهشون refrence میدید توی همه پوشه ها یکی باشه
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .