رفتن به مطلب

آموزش تغییر فونت تمام ویو ها بصورت یکجا در اندروید استودیو


coco

ارسال‌های توصیه شده

سلام

 

تو این آموزش میخوایم تمام ویو هایی که فونت هاشون قابل تعویض هست رو بصورت یکجا فونتشون رو تغییر بدیم!

 

**منبع : اسفندونه**

قدم اول : افزودن کتابخانه به پروژه تون

داخل فایل build.gradle پروژه تون اضافه کنید:

dependencies {
    compile 'uk.co.chrisjenx:calligraphy:2.1.0'
}

قدم دوم : فونت مورد نظرتون رو داخل پوشه assets (اگه ندارید بسازیدش) بزارید.

قدم سوم : حالا یه کلاس بسازید داخل پکیج اصلیتون و اون رو از Application مشتق بگیرید سپس داخل متد onCreate ش فونت مدنظرتون که میخواید پیش فرض همه ویوها قرار بگیره رو تعریف کنید:

public class teif extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
                        .setDefaultFontPath("iransans.ttf")
                        .setFontAttrId(R.attr.fontPath)
                        .build()
        );
    }
}

! teif نامی هست که من برای کلاسم انتخاب کردم و کاملا اختیاری هست.

Untitled-12.png

!از اونجا که من فونت رو مستقیما داخل assets قرار دادم فقط نام فونت رو گذاشتم اگه داخل پوشه هست باید نام پوشه هم بدید مثلا:


"fonts/Roboto-RobotoRegular.ttf"

داخل فایل منیفست بشید و کلاستون رو تعریف کنید،طبق زیر عمل کنید:

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:name=".teif"
    >
....

منظورم  android:name=”.teif” هست، نام کلاسی که از اپلیکیشن مشتق شده.

قدم چهارم :‌ حالا داخل اکتیویتی هاتون کد زیر رو بزارید:

@Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}

حالا داخل لایه xml این اکتویتی هر ویویی بزارید فونتش رو تغییر میده.

 

البته این کتابخونه امکان تعریف چندین فونت و استفاده از اونا به راحتی هم داره که آموزش داده داخل گیتهاب ولی فکر میکنم نکته ای که آموزش دادم مهمترین کاربردش هست.

مشاهده کتابخانه در گیت هاب:
github.jpg

 

 

*******

عذر میخوام که خودم آموزش رو تهیه نکردم...

چون واقعا وقت نداشتم!

*******

 

موفق باشید...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...