Notice: Constant DISALLOW_FILE_EDIT already defined in /home/nouriin/public_html/wp-config.php on line 107
سریعترین و آسون‌ترین روش اعمال فونت دلخواه در اندروید | محمد نوری

شروع 01 اولین قدم خیلی مهمه، خیلیا به خاطر ترس از شکست شروع نمیکنن
پس ترس رو بزار کنار و شروع کن
فقط شروع کن
تمرین و تکرار 02 خیلیا وارد حوزه برنامه نویسی میشن و به خاطر سختی هاش سریع جا میزنن و عقب میکشن
پس اگه میخوای موفق بشی فقط و فقط تمرین کن و پشتکار داشته باش
پشتکار
حرف اول و آخر رو میزنه
موفقیت 03 زمانی میتونی به این مرحله برسی که واقعا تلاش کرده باشی. برنامه نویسی واقعا راحت نیستش
اگه خوب تلاش کنی، مطمئن باش نتیجه زحماتت رو خیلی خوب دریافت میکنی
موفقیت رو باید به دست بیاری

سریعترین و آسون‌ترین روش اعمال فونت دلخواه در اندروید

سریعترین و آسون‌ترین روش اعمال فونت دلخواه در اندروید
اندروید

سریعترین و آسون‌ترین روش اعمال فونت دلخواه در اندروید

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

روش هایی مثل :

  • با کدهای کاتلین یا جاوا به صورت typeFace
  • با کدهای XML به صورت fontFamily

این‌ها روش‌هایی هستند که شاید بارها ازشون استفاده کرده باشیم.

توی روش‌های بالا، باید برای هر ویویی که قرار هست نوشته (Text) نشون بده از جمله TextView EditText Button RadioButton CheckBox و … مدام فونت ست کنی.

فرض کن یه رابط کاربری سنگین داری، میخوای چیکار کنی؟

واسه تک تک این ویوها باید مجزا فونت ست کنی؟!

فکر نمیکنی که دیگه دوره‌ی اینطور کد زدن ها تموم شده؟!

اگه اینطوری فکر نمیکنی، الان موقعه‌ش شده که اینطوری فکر کنی😁

خب و اما راه حل چیه؟🤔

راه حل چیزیه که میخوام توی این پست معرفی کنم.

برای اینکه از فونتی که میخوای استفاده کنی، یکبار اعمال کنی و همه جا استفاده بشه، باید از کتابخونه ای به اسم Calligraphy (کالی‌گرافی) استفاده کنی.

برای اینکار این خط رو به app/build.gradle باید اضافه کنی و بعدش sync رو بزنی

implementation 'io.github.inflationx:calligraphy3:3.1.1'
implementation 'io.github.inflationx:viewpump:2.0.3'
یادت باشه نسخه‌ای که استفاده میکنی نباید پایین‌تر از نسخه ای باشه که اینجا قرار دادم.
چون باعث میشه از اندروید 10 به بالا به مشکل بخوره.
اگه میخوای با این مشکل روبرو نشی، از این نسخه ای که قرار دادم یا بالاترش رو استفاده کن

حالا که پروژه با موفقیت sync شد، نوبت این رسیده که ازش استفاده کنیم.

اول از همه باید فونت مورد نظر رو به پروژه اضافه کنیم.

برای این کار یه پوشه به هر نامی (من با نام font می‌سازم) توی پوشه assets پروژه باید اضافه کنی.

اگه پروژه‌ت پوشه assets رو نداره، میتونی توسط روش زیر این پوشه رو بسازی.

مراحل ساخت پوشه assets :

روی app کلیک راست کن و بعد New و سپس از بخش Folder میتونی Assets Folder رو انتخاب کنی.

عکس زیر رو هم ببین که بهتر کمکت میکنه.

سریعترین و آسون‌ترین روش اعمال فونت دلخواه در اندروید
مراحل ساخت پوشه Assets

الان فقط کافیه که فونت مورد نظرت رو به پوشه font اضافه کنی.

بعد از اینکه فوقت رو اضافه کردی، الان کافیه که فقط 2 مرحله دیگه رو هم انجام بدی و بعد دیگه کار تمام!

کدهای کلاس Application :

کد زیر رو باید به متد onCreate کلاس Application پروژه اضافه کنی.

کد کاتلینکد جاوا
ViewPump.init(
    ViewPump.builder()
        .addInterceptor(
            CalligraphyInterceptor(
                CalligraphyConfig.Builder()
                    .setDefaultFontPath("font/iran_sans.ttf")
                    .build()
            )
        )
        .build()
)
ViewPump.init(ViewPump.builder()
        .addInterceptor(new CalligraphyInterceptor(
                new CalligraphyConfig.Builder()
                    .setDefaultFontPath("font/iran_sans.ttf")
                    .setFontAttrId(R.attr.fontPath)
                    .build()))
        .build());
کدهای کلاس Activity :

با تکه کد قبلی کدهای مربوط به Calligraphy رو به کلاس Application که کلاس تنظیمات اصلی پروژه هست اضافه کردیم.

الان فقط کافیه که کد زیر رو به Activityهایی که قصد داری فونت ویوهای اونا تغییر کنه، اضافه کنی.

کد کاتلینکد جاوا
override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase))
}
@Override
protected void attachBaseContext(Context newBase) {
    super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase));
}

کدهای بالا درواقع فونت و تنظیمات مربوط به Calligraphy رو به Context اصلی اکتیویتی اضافه می‌کنه.

راستی، دیگه نیاز نیست این رو برای فرگمنت‌ها هم اضافه کنی.

چون parent (والد) فرگمنت‌ها اکتیویتی‌ها هستند، پس فونت روی ویوهای فرگمنت هم اعمال میشه.

دیدگاه خود را اینجا قرار دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

فیلدهای نمایش داده شده را انتخاب کنید. دیگران مخفی خواهند شد. برای تنظیم مجدد سفارش ، بکشید و رها کنید.
  • عکس
  • شناسه محصول
  • امتیاز
  • قیمت
  • در انبار
  • موجودی
  • افزودن به سبد خرید
  • توضیحات
  • محتوا
  • عرض
  • اندازه
  • تنظیمات بیشتر
  • ویژگی ها
  • Custom attributes
  • زمینه های دلخواه
مقایسه
لیست علاقه مندی ها 0