رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

راهنمایی در مورد تغییر فونت Toolbar و NavigationView


پست های پیشنهاد شده

چطور میتونم فونت Toolbar و NavigationView را تغییر بدم؟
البته تا یه جاهایی هم پیش رفتم ولی توی تغییر فونت مواردی که زیر مجموعه دارن (تصویر را ببینید) به مشکل برخورم.
دوستان لطفا راهنمایی کنید؛ ممنون.

photo_2017-10-16_07-30-46.jpg

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

اگر شما احتمالا از Textview برای متون بالا استفاده کردید، میتونید خیلی راحت یک textview سفارشی درست کنید و بجای TextView اصلی از اون استفاده کنید. نه قط اینجا بلکه همه ی جاها دیگه مشکلی برای استفاده از فونت ندارید:

یه کلاس ایجاد کن و extend کن از textview و فونتش رو عوض کن:

public class mTextView extends TextView {

    public mTextView(Context context) {
        super(context);
        Typeface irsans=Typeface.createFromAsset(context.getAssets(),"iransans.ttf");
        this.setTypeface(irsans);
    }

    public mTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        Typeface irsans=Typeface.createFromAsset(context.getAssets(),"iransans.ttf");
        this.setTypeface(irsans);
    }
}

 

از این به بعد به جای textview از mTextView استفاده کن

اگر هم کلا با فونت آشنایی نداری بگو تا اونم بگم

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در در 1396/07/24, 07:33:13، mesbAAH گفته است :

چطور میتونم فونت Toolbar و NavigationView را تغییر بدم؟
البته تا یه جاهایی هم پیش رفتم ولی توی تغییر فونت مواردی که زیر مجموعه دارن (تصویر را ببینید) به مشکل برخورم.
دوستان لطفا راهنمایی کنید؛ ممنون.

photo_2017-10-16_07-30-46.jpg

یه راه هست که که میتونید با اون یکی از فونتهای اصلی رو تغییر بدید و با معرفی typeFace به textView فونت مورد نظرتون رو اعمال کنید...

با استفاده از روش زیر حتی فونت Toast هم تغییر میکنه و حالت پیش فرض رو روی فونت شما قرار میده، برای اینکار به روش زیر عمل کنید:

1- یه پوشه به اسم assets توی پوشه main درست کنید و داخل اون یک پوشه جدید به اسم fonts بسازید و فایل فونت مورد نظرتون رو توی اون کپی کنید:

2- فایل styles.xml که در پوشه values قرار داره باز کنید و کد زیر رو بهش اضافه کنید:

<item name="android:typeface">serif</item>

3- یه کلاس جاوا به اسم TypefaceUtil.java بسازید و کدهای زیر رو درونش قرار بدید:

public class TypefaceUtil {

    /**
     * Using reflection to override default typeface
     * NOTICE: DO NOT FORGET TO SET TYPEFACE FOR APP THEME AS DEFAULT TYPEFACE WHICH WILL BE OVERRIDDEN
     * @param context to work with assets
     * @param defaultFontNameToOverride for example "monospace"
     * @param customFontFileNameInAssets file name of the font from assets
     */
    public static void overrideFont(Context context, String defaultFontNameToOverride, String customFontFileNameInAssets) {
        try {
            final Typeface customFontTypeface = Typeface.createFromAsset(context.getAssets(), customFontFileNameInAssets);

            final Field defaultFontTypefaceField = Typeface.class.getDeclaredField(defaultFontNameToOverride);
            defaultFontTypefaceField.setAccessible(true);
            defaultFontTypefaceField.set(null, customFontTypeface);
        } catch (Exception e) {
        }
    }
}

3- حالا در MainActivity بعد از setContentView کد زیر رو قرار بدید تا تمامی فونتهایی که از نوع serif هستند به فونت مورد نظرمون تغییر کنه:

TypefaceUtil.overrideFont(getApplicationContext(), "SERIF", "fonts/BYekan.ttf");

4- حالا به عنوان قدم آخر در طراحی UI اگر یک TextView (یا هر آیتمی که قابلیت معرفی Typeface داشته باشه) کافیه که typeface اون رو روی serif قرار بدید:

android:typeface="serif"

** این روش یک مشکل اساسی داره فقط، اونم اینه که اگر از کتابخانه ای استفاده کنید که درون اون typeface معرفی شده باشه عمل نمیکنه...

در غیر این صورت دز تمامی حالتها جواب میده حتی اگر typeface برای آیتمهاتون معرفی نکنید...

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • مطالب مشابه

    • توسط soroush_habibi
      سلام.چطوری تایتل رو از روی تولبار حذف کنم؟
    • توسط barman.ar16
      سلام به همه ی اساتید عزیز
      ابتدا به همه خداقوت میگم و خواهشمندم نسبت به سوالی که می پرسم ملاطفت نشون بدید و اگر مقدور بود راهنمایی بفرمائید ((( بنده مبتدی هستم و تازه شروع به برنامه نویسی اندروید اون هم با اندروید استودیو کردم )))
       
      *** مطلب مهمی که بهش فکر کردم اینه که اول من اومدم مفاهیم پایه رو یاد گرفتم و بعد با توجه به اینکه دیدم مطالب توی اندروید استودیو بسیار وسیع و متنوع هستند تصمیم گرفتم پروژه محور مطالب رو یاد بگیرم یعنی هر آنچه نیازم شد برم سراغش و یادش بگیرم ( البته این رو هم بگم که من قبلا سی شارپ کار کردم در حد متوسطه الی پیشرفته و آشنایی با برنامه نویسی دارم  )
       
      خب اولین سوالم همانطور که از موضوع تاپیک مشخصه این هست که چطور میشه با استایل actionbar کار کرد و اون رو کاستومایز کرد البته با جستجویی که کردم تا اینجا پیش رفتم که از قسمت مانیفست میشه به استایل اون دست پیدا کرد و بعد به سراغ style رفت و با اون ور رفت اما من دقیقا به دنبال روشی هستم که بشه این طراحی رو داشت
      عکس :

       
      ممنون و سپاسگذارم
    • توسط Amir2115
      میخام این بالای تولبارمو قسمت س نقطه و س خطش ک برای منوی کشویی انجام میشه رو رنگشو از مشکی به سفید تغییر بدم.باید چیکار کنم؟
  • فایل

×
×
  • اضافه کردن...