بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
تنظیم اندازه فونت برای صفحه نمایش های مختلف...
سلام.کسی میدونه میشه کاری کرد که وقتی برنامه نصب شد روی گوشی کاربر، باتوجه به اندازه ی صفحه نمایشش فونتی با سایزی که ما از قبل تعیین کردیم رو نمایش بده؟
منظورم اینه که کدی هست که توی برنامه مون بنویسیم که اگر کاربر صفحه نمایشش کوچیک بود، فونت رو باسایز مثلا 14 نمایش بده و اگر متوسط بود، فونت برنامه رو با سایز 16 و... همینطور تا آخر؟همچین کدی هست؟
+1
0

معمولا از واحد ها استفاده می کنن واحد هایی که مستقل از پیکسل کار می کنند ، مثلا 21sp اگه صفحه نمایشت کوچیک باشه این فونت کوچیک نمایش داده میشه ، اگه بزرگ باشه که بزرگتر نمایش داده میشه ، در واقع متناسب با اون صفحه نمایش داده میشه ، نه خیلی بزرگتر و نه خیلی کوچکتر (10 سال پیش)
0
0

البته این حالت یک ایراد هم دارد و اون اینه که وقتی تنظیمات مربوط به کم بینایان روی گوشی فعال بشه ابعاد شما به هم می ریزن و ممکن برنامه درست نشون داده نشه. (10 سال پیش)
0
0

اتفاقا مزیت بزرگش همینه. برنامه قراره برای کاربر کار بکنه، نه برای خودش (10 سال پیش)
+1
0

سلام به همگی.ممنونم بخاطر اینکه نظر دادین اما من درباره ی کدش سوال کردم نه مزیت و معایبش.میخوام ببینم که هست همچین کدی که شرط بزارم توی اکتیویتی خودم و بگم اگر صفحه نمایش کاربر کوچک بود، فلان سایز رو برای فونت انتخاب کن و به کاربر نشون بده و اگر متوسط بود فلان سایز و اگر بزرگ بود سایز دیگه.کدش رو میخوام . هست؟ (10 سال پیش)
برای این سوال 2 پاسخ وجود دارد.

پاسخ به سوال
Hossein Kurd
10 سال پیش
+13
0
من از این کد برای به دست آوردن ابعاد صفحه ، سایز صفحه نمایش و تعیین اندازه فونت استفاده می کنم:
screen_density = (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK); UIHelpers.screenDensity = screen_density; Log.i(G.logs.Screen, "SCREEN DENSITY: " + screen_density); switch (screen_density) { case 1: Log.i(G.logs.Screen, "Screen Density Is Small >> " + screen_density); UIHelpers.textFont = 11; UIHelpers.titleFont = 13; break; case 2: Log.i(G.logs.Screen, "Screen Density Is Normal >> " + screen_density); UIHelpers.textFont = 12; UIHelpers.titleFont = 14; break; case 3: Log.i(G.logs.Screen, "Screen Density Is Large >> " + screen_density); UIHelpers.textFont = 16; UIHelpers.titleFont = 19; break; case 4: Log.i(G.logs.Screen, "Screen Density Is XLarge >> " + screen_density); UIHelpers.textFont = 19; UIHelpers.titleFont = 22; break; default: Log.i(G.logs.Screen, "Screen Density Is UnDefined >> " + screen_density); UIHelpers.textFont = 22; UIHelpers.titleFont = 25; break; } Log.i(G.logs.Screen, "UIHelpers.textFont >> " + UIHelpers.textFont); int currentAPIVersion = android.os.Build.VERSION.SDK_INT; Log.i(G.logs.Screen, "Current API Version: " + currentAPIVersion); DisplayMetrics metrics = UIHelpers.getScreenSize(); width = metrics.widthPixels; height = metrics.heightPixels; UIHelpers.width = width; UIHelpers.height = height;
و محتوای کلاس UIHelpers :
public class UIHelpers { public static int titleFont,textFont,DescFont; public static int width, height; public static int screenDensity; public static DisplayMetrics getScreenSize(){ return G.appConfigs.context.getResources().getDisplayMetrics(); } }
البته با تشکر از مهندس حسین زاده که برای اولین بار ایشون این کدها رو در اختیارم گذاشتن

پاسخ به سوال
Hossein Kurd
10 سال پیش
+3
0
من چند کلاس داره
مثلا LOGS
که توی اون چند فیلد final String با نام های مختلف دارم
توی کلاس G تعریف می کنم :
publc static LOGS logs = new LOGS();
محتوای LOGS :
public class Logs { public String Public = "Log"; public String Info = "LogInfo"; public String Test = "LogTest"; public String Error = "LogError"; public String GcmError = "LogGcmError"; public String GcmInfo = "LogGcmInfo"; public String JSON = "LogJson"; public String WebService = "LogWS"; public String DL = "LogDL"; public String DB = "LogDB"; public String Dir = "LogDir"; public String Screen = "LogSCR"; public String Switch = "LogSwitch"; }
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .