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

تغییر فونت اکشن بار و تب بار


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

با سلام

برای تغییر کلی فونت بخش اکشن بار و تب بار در اندروید به چه شکلی باید عمل کرد ؟ (toolbar و tablyout )

راهی هست که فونت کل برنامه رو یکجا تغییر داد ؟ 

جستجو که کردم فقط به تغییر فونت یک textview و یا یک المان رسیدم .

لطفا راهنمای کنید

ممنون

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

کلاس مورد نظر:

/**
* Style a {@link Spannable} with a custom {@link Typeface}.
* 
* @author Tristan Waddington
*/
public class TypefaceSpan extends MetricAffectingSpan {
     /** An LruCache for previously loaded typefaces. */
   private static LruCache sTypefaceCache =
           new LruCache(12);

   private Typeface mTypeface;

   /**
    * Load the {@link Typeface} and apply to a {@link Spannable}.
    */
   public TypefaceSpan(Context context, String typefaceName) {
       mTypeface = sTypefaceCache.get(typefaceName);

       if (mTypeface == null) {
           mTypeface = Typeface.createFromAsset(context.getApplicationContext()
                   .getAssets(), String.format("fonts/%s", typefaceName));

           // Cache the loaded Typeface
           sTypefaceCache.put(typefaceName, mTypeface);
       }
   }

   @Override
   public void updateMeasureState(TextPaint p) {
       p.setTypeface(mTypeface);

       // Note: This flag is required for proper typeface rendering
       p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
   }

   @Override
   public void updateDrawState(TextPaint tp) {
       tp.setTypeface(mTypeface);

       // Note: This flag is required for proper typeface rendering
       tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
   }
}

طریقه فراخوانی کلاس:

SpannableString s = new SpannableString("My Title");
s.setSpan(new TypefaceSpan(this, "MyTypeface.otf"), 0, s.length(),
       Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

// Update the action bar title with the TypefaceSpan instance
ActionBar actionBar = getActionBar();
actionBar.setTitle(s);

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

ممنون از راهنماییتون 

من مواردی که عرض کردید انجام دادم اما تغییری حاصل نشد و با همون فونت پیش فرض اندروید نمایش داده میشه .

فونت BYekan.ttf رو در فولدر assets/fonts قرار دادم و کدهام هم به صورت زیر هست :

mToolbar = (Toolbar) findViewById(R.id.main_toolbar);
SpannableString s = new SpannableString(getString(R.string.main_activity_title));
s.setSpan(new TypefaceSpan(this, "BYekan.ttf"), 0, s.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
mToolbar.setTitle(s);
setSupportActionBar(mToolbar);

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

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

البته یه راه حلی پیدا کردم و تغییر دادم ، به صورت که toolbar و tablayout رو child هاشون رو گرفتم و دونه دونه تغییر فونت دادم ، تب بار خوب شد اما اکشن بار متن یکم میاد پایین تر از آیکون کناریش و جالب نیست .

این راه حلی که  Azam Nuri گفتن خوب هست البته تا الان که جواب نگرفتم ، اگر دوستان اطلاعی دارند لطفا راهنمایی کنید .

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

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

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

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

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

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

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

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

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

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