喜请不要这样
public void loadFont() {
font = FontFactory.createStroke(activity.getFontManager(), activity.getTextureManager(), 256, 256, Typeface.create(Typeface.createFromAsset(activity.getAssets(), "fonts/CUSTOMFONTNAME.ttf"), Typeface.BOLD), 50,
true, Color.TRANSPARENT_ABGR_PACKED_INT, 2, Color.BLACK_ABGR_PACKED_INT);
font.load();}
如果有比
TextView text = (TextView) findViewById(R.id.custom_font);
Typeface font = Typeface.createFromAsset(getAssets(), "yourfont.ttf");
text.setTypeface(font);
这旁边的任何文本视图访问我的博客http://upadhyayjiteshandroid.blogspot.in/2012/12/android-customfont.html并以此方式执行此操作
Programaticaaly你可以做如下,您可以为每个TextView的,按钮等建立子类,并在构造函数中应用自定义字体:
public class BrandTextView extends TextView {
public BrandTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public BrandTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public BrandTextView(Context context) {
super(context);
}
public void setTypeface(Typeface tf, int style) {
if (style == Typeface.BOLD) {
super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/YourCustomFont_Bold.ttf"));
} else {
super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/YourCustomFont.ttf"));
}
}
}
然后,只需使用自定义视图,而不是标准的人(即BrandTextView而不是TextView)。
<com.your.package.BrandTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View with custom font"/>
<com.your.package.BrandTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="View with custom font and bold typeface"/>
利用这些都在你的main.xml中,你可以使用它们
另一种可能的方式可以如下以及
FontHelper.applyFont(context, findViewById(R.id.activity_root), "fonts/YourCustomFont.ttf");
where applyFont method acn be written as follows
public static void applyFont(final Context context, final View root, final String fontName) {
try {
if (root instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) root;
for (int i = 0; i < viewGroup.getChildCount(); i++)
applyFont(context, viewGroup.getChildAt(i), fontName);
} else if (root instanceof TextView)
((TextView) root).setTypeface(Typeface.createFromAsset(context.getAssets(), fontName));
} catch (Exception e) {
Log.e(TAG, String.format("Error occured when trying to apply %s font for %s view", fontName, root));
e.printStackTrace();
}
}
请访问更多更好地了解http://vision-apps.blogspot.in/2012/02/android-better-way-to-apply-custom-font.html
部分答案似乎直接从vision-apps.blogspot.com/2012/02/android-better-way-to-apply-custom-font.html复制 - 请在您使用其他人的工作时添加归属。 – laalto
肯定拉尔托,我这样做! –
@laalto @laalto我已添加属性和链接http://upadhyayjiteshandroid.blogspot.in/2012/12/android-customfont.html是我自己的博客以及 –