我最近制作了一个带有ASCII艺术的角色扮演游戏,自从安卓5.0以后,艺术就搞砸了。
我使用自定义字体显示它,用以下内容定义:
Typeface face= Typeface.createFromAsset(getAssets(),"fonts/courier.ttf");
etiqPlateau.setTypeface(face);
我使用了android:fontFamily =" monospace"在xml中设置但看起来像java代码中定义的TypeFace会覆盖xml设置。是否可以在xml中定义字体的属性或至少定义5.0+中等宽字体的使用?救命啊!
In Android 4.4(图片)
In Android 6.0(图片)
编辑 - 即使我在XML上使用android:fontfamily而没有设置字体,android 5.0+也会混淆monospace字体。
答案 0 :(得分:0)
你也可以试试这个
public static class FontCache {
private static HashMap<String, Typeface> fontCache = new HashMap<>();
public static Typeface getTypeface(String fontname, Context context) {
Typeface typeface = fontCache.get(fontname);
if (typeface == null) {
try {
typeface = Typeface.createFromAsset(context.getAssets(), fontname);
} catch (Exception e) {
return null;
}
fontCache.put(fontname, typeface);
}
return typeface;
}
}
字体customFont = FontCache.getTypeface(&#34;您的自定义下载 font.ttf&#34;,clContext);
code snippet:
Typeface customFont = FontCache.getTypeface("chyga.ttf", clContext);
yourTextView.setTypeface(customFont);