我正在尝试为我的游戏设置自定义字体,但我真的不知道如何。我现在选择字体的方式是使用这种方法
public void loadFont() {
font = FontFactory.createStroke(activity.getFontManager(), activity.getTextureManager(), 256, 256, Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD), 50,
true, Color.WHITE_ABGR_PACKED_INT, 2, Color.BLACK_ABGR_PACKED_INT);
font.load();
}
其中“Typeface.SANS_SERIF”是字体
如果您知道如何从资源文件夹加载字体,请帮助我吗?谢谢
* *我正在使用AndEngine-GLES2-AnchorCenter
答案 0 :(得分:2)
将yourfont.ttf
或yourfont.otf
添加到Assets
的{{1}}中并加载自定义字体,例如
Project
答案 1 :(得分:2)
我明白了。这是代码
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();
答案 2 :(得分:0)
嗨,请这样做
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,Button等创建子类,并在构造函数中应用自定义字体:
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
答案 3 :(得分:0)
在Andengine-GLES2中,您可以在onCreateResources()中使用自定义字体:
FontFactory.setAssetBasePath("font/");
final ITexture fontTexture = new BitmapTextureAtlas(activity.getTextureManager(), 256, 256, TextureOptions.BILINEAR);
this.mFont = FontFactory.createFromAsset(this.getFontManager(), fontTexture, activity.getAssets(), "your_font_name.ttf", 40, true, android.graphics.Color.BLACK);
this.mFont.load();
您可以这样使用“Typeface.SANS_SERIF”字体:
this.mFont = FontFactory.create(this.getFontManager(), this.getTextureManager(), 256, 256, Typeface.create(Typeface.SANS_SERIF, Typeface.NORMAL), 32);
this.mFont.load();