bahman72313
چهارشنبه 06 خرداد 1394, 22:43 عصر
سلام دوستان.من برنامه ام رو بر اساس تبلت 7 اینچی (xxhdp) که دم دست دارم طراحی کرده ام.اندازه فونت هایی که داده ام در این تبلت راضی کننده هست یعنی نه بیشتر و نه کمتر. با نحوه گرفتن سایز گوشی و نسبت دادن اندازه فونت بر همین اساس کاملا آشنایی دارم فقط تنها مشکلی که هست اینه که نمیدونم برای سایز های دیگر چه اندازه فونتی رو قرار بدم.مثلا من برای سایز xxhdpi اندازه فونت های زیر رو در نظر گرفتم اما نمیدونم برای سایز های دیگر یعنی ldpi-mdpi-hdpi-xhdpi-xxxhdpi چه سایزهایی رو انتخاب کنم.دوستان من خیلی سعی کردم که یک کد جمع و جور و کاملی برای ست کردن فونت بصورت داینامیک بر حسب سایز گوشی پیدا کنم اما موفق نشدم.لذا خودم دست به کار شدم و حاصل شد کد زیر:فقط اگر دوستان زحمت بکشند و با توجه به تجربه خودشون بگن که بجای علامت سوال های کد زیر چه اعدادی بایستی قرار داده بشه خیلی عالی میشه.
if (screen_density >= 4.0) { // size>=xxxhdpi
font_size1 = ???;
font_size2 = ???;
font_size3 = ???;
font_size4 = ???;
}
else if (screen_density >= 3.0) { // size>=xxhdpi & size<xxxhdpi
font_size1 = 20;
font_size2 = 21;
font_size3 = 22;
font_size4 = 23;
}
else if (screen_density >= 2.0) { // size>=xhdpi & size<xxhdpi
font_size1 = ???;
font_size2 = ???;
font_size3 = ???;
font_size4 = ???;
}
else if (screen_density >= 1.5) { // size>=hdpi & size<xhdpi
font_size1 = ???;
font_size2 = ???;
font_size3 = ???;
font_size4 = ???;
}
else if (screen_density >= 1.0) { // size>=mdpi & size<hdpi
font_size1 = ???;
font_size2 = ???;
font_size3 = ???;
font_size4 = ???;
}
else { // size>=ldpi & size<mdpi
font_size1 = ???;
font_size2 = ???;
font_size3 = ???;
font_size4 = ???;
}
txt1.setTextSize(TypedValue.COMPLEX_UNIT_SP, font_size1); // ست کردن سایز متن بر حسب اس پی
txt2.setTextSize(TypedValue.COMPLEX_UNIT_SP, font_size2);
txt3.setTextSize(TypedValue.COMPLEX_UNIT_SP, font_size3);
txt4.setTextSize(TypedValue.COMPLEX_UNIT_SP, font_size4);
if (screen_density >= 4.0) { // size>=xxxhdpi
font_size1 = ???;
font_size2 = ???;
font_size3 = ???;
font_size4 = ???;
}
else if (screen_density >= 3.0) { // size>=xxhdpi & size<xxxhdpi
font_size1 = 20;
font_size2 = 21;
font_size3 = 22;
font_size4 = 23;
}
else if (screen_density >= 2.0) { // size>=xhdpi & size<xxhdpi
font_size1 = ???;
font_size2 = ???;
font_size3 = ???;
font_size4 = ???;
}
else if (screen_density >= 1.5) { // size>=hdpi & size<xhdpi
font_size1 = ???;
font_size2 = ???;
font_size3 = ???;
font_size4 = ???;
}
else if (screen_density >= 1.0) { // size>=mdpi & size<hdpi
font_size1 = ???;
font_size2 = ???;
font_size3 = ???;
font_size4 = ???;
}
else { // size>=ldpi & size<mdpi
font_size1 = ???;
font_size2 = ???;
font_size3 = ???;
font_size4 = ???;
}
txt1.setTextSize(TypedValue.COMPLEX_UNIT_SP, font_size1); // ست کردن سایز متن بر حسب اس پی
txt2.setTextSize(TypedValue.COMPLEX_UNIT_SP, font_size2);
txt3.setTextSize(TypedValue.COMPLEX_UNIT_SP, font_size3);
txt4.setTextSize(TypedValue.COMPLEX_UNIT_SP, font_size4);