我想在android中使用我自己的字体导航抽屉.我根据这个答案使用androID自带的工作室:https://stackoverflow.com/a/23632492/4393226.
但我不知道如何@R_418_6502@并使其成为RTL.
我搜索了很多,我发现了如何制作抽屉RTL.我用这个代码:
getwindow().getDecorVIEw().setLayoutDirection(VIEw.LAYOUT_DIRECTION_RTL);
和
Android – Is Navigation Drawer from right hand side possible?
但正如您所知,这仅适用于API 17及更高版本.
请帮忙!如何更改菜单字体?如何以正确的方式进行布局RTL?!
编辑:
我的字体“TTF”文件是资产/字体,我知道如何使用java为textvIEw设置它,但我不知道如何将其设置为导航抽屉菜单.
解决方法:
我找到了答案:
首先在项目中创建此类:
import androID.graphics.Paint;import androID.graphics.Typeface;import androID.text.TextPaint;import androID.text.style.TypefaceSpan;public class CustomTypefaceSpan extends TypefaceSpan { private final Typeface newType; public CustomTypefaceSpan(String family, Typeface type) { super(family); newType = type; } @OverrIDe public voID updateDrawState(TextPaint ds) { applyCustomTypeFace(ds, newType); } @OverrIDe public voID updateMeasureState(TextPaint paint) { applyCustomTypeFace(paint, newType); } private static voID applyCustomTypeFace(Paint paint, Typeface tf) { int oldStyle; Typeface old = paint.getTypeface(); if (old == null) { oldStyle = 0; } else { oldStyle = old.getStyle(); } int fake = oldStyle & ~tf.getStyle(); if ((fake & Typeface.BolD) != 0) { paint.setFakeBoldText(true); } if ((fake & Typeface.ITAliC) != 0) { paint.setTextSkewX(-0.25f); } paint.setTypeface(tf); }}
然后将此方法添加到您想要更改导航抽屉菜单字体的活动中:
private voID applyFontToMenuItem(MenuItem mi) { Typeface Font = Typeface.createFromAsset(getAssets(), "ds_digi_b.TTF"); SpannableString mNewTitle = new SpannableString(mi.getTitle()); mNewTitle.setSpan(new CustomTypefaceSpan("" , Font), 0 , mNewTitle.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); mi.setTitle(mNewTitle);}
然后添加调用您刚刚在活动中添加的方法:
navVIEw = (NavigationVIEw) findVIEwByID(R.ID.navVIEw);Menu m = navVIEw.getMenu();for (int i=0;i<m.size();i++) { MenuItem mi = m.getItem(i); //for aapplying a Font to subMenu ... SubMenu subMenu = mi.getSubMenu(); if (subMenu!=null && subMenu.size() >0 ) { for (int j=0; j <subMenu.size();j++) { MenuItem subMenuItem = subMenu.getItem(j); applyFontToMenuItem(subMenuItem); } } //the method we have create in activity applyFontToMenuItem(mi);}
总结 以上是内存溢出为你收集整理的android – 如何更改导航抽屉字体?全部内容,希望文章能够帮你解决android – 如何更改导航抽屉字体?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)