بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

اعمال فونت بر روی همه ی تکست ها

مدیریت گفتگو
Web/Mobile 10 سال پیش
آخرین تغییر: 10 سال پیش

برای اعمال شدن فونت مورد نظرم توی اپلیکیشن، مجبورم برای هر تکست یه ایدی بدم و کد زیر رو توی هر اکتیویتی بیارم :

TextView matn = (TextView) findViewById(R.id.matn);
Typeface tf4 = Typeface.createFromAsset(getAssets(),"font/font.ttf"); matn.setTypeface(tf4);

خب مطمئنا چیز مسخره ای هست این راه، و باعث میشه حجم برنامه بره بالا !

یه راهی بگید که فونت مورد نظرم روی همه ی تکست ها اعمال بشه ..

فکر کنم باید یه اکتیویتی ایجاد کنم که همه فونت ها اونجا باشه .. بعد اکتیویتی رو صدا کنم توی هر اکتیویتی دیگه ؟

ممنونم بابت راهنماییتون..

البته روش زیر هم هست :

 android:fontFamily="@array/font"

نظرات

سید محمود 10 سال پیش
راه های زیادیه مثلا کاستوم کنترل بسازی همه تغییرات رو از جمله فونت بدی و اونو به جای تکست ویو ها استفاده کنی (آموزشهای آقای کاشی زاده کمکت میکنه) - یا از کتابخونه استفاده کنی (مثلا caligraphy) - کلاس ها رو ارث بری کنی و فونت ها رو تو یک کلاس اصلی تعیین کنی - از ریفلکشن استفاده کنی ... ولی فکر نکنم حجم برنامه بره بالا
Web/Mobile 10 سال پیش
@کاشی زاده. ممنون .. هم کد شما و هم کد هایی که خودم تست کردم برای اکتیویتی های "اینکلود" شده جواد نداد !

پاسخ‌ها 1

sh.khaksar 10 سال پیش

شما یه کاستوم تکست ویو بساز و توی فایل 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);
}
}
}

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .