بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
اعمال فونت بر روی همه ی تکست ها
برای اعمال شدن فونت مورد نظرم توی اپلیکیشن، مجبورم برای هر تکست یه ایدی بدم و کد زیر رو توی هر اکتیویتی بیارم :
TextView matn = (TextView) findViewById(R.id.matn);
Typeface tf4 = Typeface.createFromAsset(getAssets(),"font/font.ttf"); matn.setTypeface(tf4);
خب مطمئنا چیز مسخره ای هست این راه، و باعث میشه حجم برنامه بره بالا !
یه راهی بگید که فونت مورد نظرم روی همه ی تکست ها اعمال بشه ..
فکر کنم باید یه اکتیویتی ایجاد کنم که همه فونت ها اونجا باشه .. بعد اکتیویتی رو صدا کنم توی هر اکتیویتی دیگه ؟
ممنونم بابت راهنماییتون..
البته روش زیر هم هست :

android:fontFamily="@array/font"
+2
0
راه های زیادیه مثلا کاستوم کنترل بسازی همه تغییرات رو از جمله فونت بدی و اونو به جای تکست ویو ها استفاده کنی (آموزشهای آقای کاشی زاده کمکت میکنه) - یا از کتابخونه استفاده کنی (مثلا caligraphy) - کلاس ها رو ارث بری کنی و فونت ها رو تو یک کلاس اصلی تعیین کنی - از ریفلکشن استفاده کنی ...
ولی فکر نکنم حجم برنامه بره بالا (10 سال پیش)
+1
0
لینک (10 سال پیش)
0
0
@کاشی زاده.
ممنون ..
هم کد شما و هم کد هایی که خودم تست کردم برای اکتیویتی های "اینکلود" شده جواد نداد ! (10 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
sh.khaksar
10 سال پیش
+6
0
شما یه کاستوم تکست ویو بساز و توی فایل XML به جای تکست ویو معمولی، آدرس تکست ویو خودت رو بده، مثالش رو هم قرار میدم:
public class Textview extends TextView {
public Textview(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initialize();
}
public Textview(Context context, AttributeSet attrs) {
super(context, attrs);
initialize();
}
public Textview(Context context) {
super(context);
initialize();
}
private void initialize() {
if ( !isInEditMode()) {
Typeface face = Typeface.createFromAsset(getContext().getAssets(),
"font.ttf");
setTypeface(face);
}
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .