همیار اندروید
همیار اندروید
همیار اندروید
نه
بله
منوی وبسایت
حساب کاربری

همیار اندروید

مرجــع تخصـصــی توسـعــه انــدرویــد

منوی وبسایت
حساب کاربری

معرفی و کار با کتابخانه کالیگرافی Calligraphy برای تغییر فونت در برنامه نویسی اندروید

معرفی و کار با کتابخانه کالیگرافی Calligraphy برای تغییر فونت در برنامه نویسی اندروید
نوع هزینه
شرکت کنندگان
دریافت دسترسی
مشخصات این آموزش
موضوعات مرتبط
زبان برنامه‌نویسی
Java   ,   XML
نوع قسمت‌ها
محتوای ارائه شده
متن   ,   تصویر
مهارت های مورد نیاز
وضعیت انتشار
سطح آموزش
آخرین آپدیت
یادگیری این آموزش

دوستان عزیز سلام

با یه آموزش بسیار کاربردی دیگه در خدمت شما هستم

میخایم با فونت ها کار کنیم به کمک کتابخانه کالیگرافی Calligraphy

 

 

کالیگرافی چیست ؟

ساده بخام بگم یک کتابخانه هستش که به کمک اون

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

حالا فونت رو روی یک ویو خاص ست کنید

یا روی کل اپلیکیشن ست کنید

اینم آدرس رسمی کتابخانه Calligraphy در گیتهاب هستش

در ادامه اول طی ۵ مرحله کتابخانه رو کانفیگ و روی اکتیویتی موردنظر ست میکنیم

بعد ۴ روش برای استفاده از کتابخانه بهتون یاد میدم

 

 

کانفیگ کالیگرافی : مرحله ۱

ابتدا باید کتابخانه کالیگرافی رو به پروژه اضافه کنید

کدهای ذیل رو به گریدل اضافه کنید و گریدل رو Sync کنید

dependencies {
    implementation 'io.github.inflationx:calligraphy3:3.1.1'
    implementation 'io.github.inflationx:viewpump:2.0.3'
}

من این مرحله رو انجام دادم به تصویر زیر دقت کنید

 

 

 

کانفیگ کالیگرافی : مرحله ۲

حالا باید پوشه assets رو ایجاد کنید

و درون پوشه assets یک پوشه دیگر با نام fonts ایجاد کنید

و فونتهای دلخواه خودتون رو به اون اضافه کنید

اگه بلد نیستید این پوشه ها رو اضافه کنید به این آموزش مراجعه کنید و یاد بگیرید

من این مرحله رو انجام دادم به تصویر زیر دقت کنید

 

همونطور که در تصویر بالا میبینید ، من چهار فونت به پروژه اضافه کردم

و قرار هستش از این فونتها به چهار روش مختلف استفاده کنم

 

 

کانفیگ کالیگرافی : مرحله ۳

اینجا خوب دقت کنید

ما باید یک کلاس کمکی ایجاد کنیم

این کلاس رو با نام Init که مخفف کلمه Initialization هستش ایجاد میکنیم ، یعنی مقدار دهی اولیه

باید درون این کلاس ، کانفیگ اولیه کتابخانه کالیگرافی رو انجام بدیم

یعنی کدهای زیر رو به اون اضافه کنم

ViewPump.init(ViewPump.builder()
                .addInterceptor(new CalligraphyInterceptor(
                        new CalligraphyConfig.Builder()
                                .setDefaultFontPath("fonts/negar.ttf")
                                .setFontAttrId(R.attr.fontPath)
                                .build()))
                .build());

من کلاس رو ایجاد کردم و کانفیگ کالیگرافی رو هم انجام دادم

به تصویر زیر دقت کنید

 

به خط ۱۹ تصویر بالا دقت کنید

من در اینجا به کالیگرافی گفتم که

فونت پیشفرض من فونت negar هستش

 

 

 

کانفیگ کالیگرافی : مرحله ۴

حالا باید کلاس کمکی Init رو به AndroidManifest معرفی کنیم

من این کار رو انجام دادم ، به تصویر زیر دقت کنید

 

به خط ۶ در تصویر بالا دقت کنید

دقیقا با اضافه کردن این خط ، کلاس کمکی رو به پروژه معرفی کردم

 

 

 

نکته بسیار مهم

اصلا کاربرد کلاس کمکی چیه ؟ همون کلاس Init

هر بار که اپلیکیشن روی دستگاه کاربر اجرا میشه

قبل از هرکاری ، ابتدای ابتدای ابتدای اجرا

اپلیکیشن وارد کلاس کمکی میشه

و عملیات درون کلاس کمکی رو اجرا میکنه

حالا ما درون کلاس کمکی فقط کانفیگ کتابخانه کالیگرافی رو انجام دادیم

اما ممکنه از این کلاس کمکی ، استفاده های دیگری هم داشته باشیم

 

 

کانفیگ کالیگرافی : مرحله ۵

حالا ما کتابخانه کالیگرافی رو در دسترس داریم

درهر اکتیویتی ای که بخایم از کتابخانه استفاده کنیم

باید درون کلاس اون کدهای زیر رو قرار بدیم

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

من در کلاس MainActivity این کار رو انجام دادم

یعنی کتابخانه کالیگرافی رو روی اکتیویتی MainActivity ست کردم

به تصویر زیر دقت کنید

 

 

 

 

استفاده کالیگرافی : تغییر فونت کل اکتیویتی

قبلا این اتفاق افتاده

با کانفیگ کالیگرافی و ست کردن روی اکتیویتی مورد نظر 

کل لایوت مربوط به اکتیویتی مورد نظر تغییر فونت پیدا میکنه

به فونت پیش فرضی که در مرحله 3 کانفیگ به کالیگرافی دادیم

تصویر زیر هم مربوط به لایوت MainActivity من هستش 

مشاهده می کنید چهار TextView دارم ، که فونتشون تغییر پیدا کرده

 

 

 

 

استفاده کالیگرافی : تغییر ویویی خاص به روش fontPath

حالا که فونت تمام ویو ها تغییر کرده

میخام فقط فونت مربوط به  TextView شماره ۲ رو تغییر بدم

به فونت  nastaliq تغییر بدم

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

و خط زیر رو به ویو موردنظر اضافه میکنم و تمام

fontPath="fonts/nastaliq.ttf"

به تصویر زیر دقت کنید که فونت تمام ویوها به یک شکل هستش

اما فونت TextView شماره ۲ تغییر کرد

 

 

پس ۲ روش دیگه ؟

دیگه آموزش طولانی شد

اگر این آموزش بازخورد خوبی داشت و کامنتهای پر انرژی ای دریافت کردم

جلسه بعدی ، ۲ روش دیگه رو هم آموزش میدم

و همینطور کلی نکته دیگه 

 

 

سورس کدهای این آموزش

سورس کدهای این آموزش که درواقع طی یک پروژه انجام دادم 

 روی همین آموزش براتون پیوست میکنم

 

 

سخن آخر

خدایی برا آموزش ها زیاد زحمت میکشیم

تا شما دوستان عزیز به درک خوبی از برنامه نویسی اندروید برسید

در کانال و گروه تلگرامی همیار اندروید هم منتظر شما هستیم

در پناه حق ، بدرود

HRoid.ir/t186
لینک کوتاه این آموزش برای انتشار در شبکه های اجتماعی
نظرات این آموزش
ابتدا باید وارد حساب کاربری خود شوید ، تا بتوانید برای این آموزش نظری ارسال کنید
هنوز نظری برای این آموزش ثبت نشده است
کپی برداری از محتوا و دیگر منابع اختصاصی به هر نحو غیر مجاز است. حتی با ذکر منبع. در صورت تخلف پیگرد قانونی به همراه خواهد داشت.
Copyright © 2020 , www.HamyarRoid.com , www.HamyarAndroid.com , Terms , Sitemap
خلـــق هـمیـار انـدرویــد با
logo-samandehi