PDA

View Full Version : استفاده از فونت خاص در کل برنامه یا به حالت استایل



آرام جان گل
جمعه 17 دی 1395, 19:46 عصر
با سلام
من در برنامه اندرویدم می تونم در فایل جاوا فونتی را که اضافه کردم به مثلا textview اعمال کنم
اما سوالم اینه آیا می تونیم با یه راهی فونت را از طریق layout یا حتی یک استایل اعمال کنیم؟

ممنونم لطفا راهنمایی کنید

rezaricky
شنبه 18 دی 1395, 13:50 عصر
سلام .
http://barnamenevis.org/showthread.php?532714-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D9%81%D9%88%D9%86%D8%AA-%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C-%D8%AF%D8%B1-%DA%A9%D9%84-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-!&p=2349998#post2349998

tux-world
شنبه 18 دی 1395, 15:16 عصر
یه راه ساده تر اینه یه view group رو به این تابع پاس بدید همه رو به یکباره تغییر فونت بده یا میتونید فقط یه ویجت بهش نسبت بدید

public static void overrideFonts(final Context context, final View v, PersianFontType fontType) {
String font_family = "";
switch (fontType) {
case PARASTOO_REQULAR:
font_family = "fonts/parastoo_reqular.ttf";
break;
case PARASTOO_BOLD:
font_family = "fonts/parastoo_bold.ttf";
break;
case PARASTOO:
font_family = "fonts/parastoo.ttf";
break;
case SAHEL_BLACK:
font_family = "fonts/sahel_black.ttf";
break;
case SAHEL_BOLD:
font_family = "fonts/sahel_bold.ttf";
break;
case SAHEL:
font_family = "fonts/sahel.ttf";
break;
case VAZIR_BOLD:
font_family = "fonts/vazir.ttf";
break;
case VAZIR:
font_family = "fonts/vazir_bold.ttf";
break;
case VAZIR_LIGHT:
font_family = "fonts/vazir_light.ttf";
break;

}

try {
if (v instanceof ViewGroup) {
ViewGroup vg = (ViewGroup) v;
for (int i = 0; i < vg.getChildCount(); i++) {
View child = vg.getChildAt(i);
overrideFonts(context, child, fontType);
}
} else if (v instanceof TextView) {
((TextView) v).setTypeface(Typeface.createFromAsset(context.ge tAssets(), font_family));
}
} catch (Exception e) {
Log.e("ERROR Override fonts", e.getMessage());
}
}