تنظیم فونت پیش فرض به صورت Style
مجددا سلام
تویه برنامه من بیشتر از 500 تا text استفاده شده
نمی دونم از style چطوری میشه استفاد کرد فقط تویه جواب ها سرچ کردم دیدم که یکی از راه های تغییر فونت اینه
سوالم اینه :
چطوری می شه فونت پیش فرضی رو که نرم افزار های اندورید ازش استفاده می کنند تغییر داد
می خوام با ین کار زحمت تعریف استایل یا تغییر فونت 500 تا text رو نداشته باشم
مرسی
ببین بستگی داره ساختار تکست هات چیه چون من نمیدونم ولی این کارو میتونی بکنی
1- اگه تکست هات رو داینامیک تولید میکنی و همون لحظه روی صفحه نمایش میدی که مشکل خاصی نیست کافیه کد text.settextsize رو بزنی و تکست ها رو با یک حلقه سایزشون رو ست کنی
2- اگه تکست ها هر کدوم توی یک اکتیویتی و یک لایه خاصی هستند باید این کارو بکنی که راه سخت تر و زمان گیرتری هست
این تکه کدیه که خودم میزنم تا تکست هام رو ست کنم سریع این کد کمک میکنه که حتی اگه توی یک لایه نمیدونی متن یا عکس کد خودش چک کنه و اگه از جنس تکست هست اونا رو خصوصیاتشو ست میکنه .. نحوه استفاده از استایل رو وقت ندارم بت بگم وقت بشه توی همین پست برات مینویسم ! اما این به کارت میاد بزننننننننن لایکووووووووو !
for (int i = 0; i < container.getChildCount(); i++)
{
View getchid = container.getChildAt(i);
if (getchid instanceof TextView) // اگه نوع ویویی که میگیری از جنس متنی و تکست هست فونتشو عوض کن
{
((TextView) getchid).setTypeface(G.face);
((TextView) getchid).setTextSize(25);
// ((TextView) getchid).setLineSpacing(50, 0);
}
}
سلام
من خودم از این متد استفاده میکنم
private void overrideFonts(final Context context, final View v) {
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);
}
} else if (v instanceof TextView) {
((TextView) v).setTypeface(Typeface.createFromAsset(context.getAssets(), "bkoodak.ttf"));//bkoodak is my font
}
}
catch (Exception e) {}
}
راهی که من استفاده میکنم اینه:
یه کلاس به اسم MyTextView به شکل زیر بساز:
public class MyTextView extends TextView{
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initialize();
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
initialize();
}
public MyTextView(Context context) {
super(context);
initialize();
}
private void initialize() {
if (!isInEditMode()) {
// اینجا میتونی typeface تعریف کنی
}
}}
بعد برو توی layout ها محتویات هر کدوم رو دونه دونه کپی کن توی برنامه Notepad++ و عبارت <TextView رو با عبارت <com.example.package.MyTextView جایگزین کنید که به جای اون عبارت اسم پکیج رو بزارید، اینجوری هر چه تغییر توی فایل MyTextView بدید در کل TextView ها اعمال میشه!
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .