【发布时间】:2015-09-25 09:59:26
【问题描述】:
我在我的应用程序中使用了 FontAwesome 作为图标。特别是在一些 TextViews 中。由于我希望在某些特定的文本视图中使用它,因此我制作了一个自定义文本视图。
public class FontAwesomeTextView extends TextView {
public FontAwesomeTextView(Context context) {
super(context);
}
public FontAwesomeTextView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public FontAwesomeTextView(Context context, AttributeSet attributeSet, int style) {
super(context, attributeSet, style);
}
@Override
public void setTypeface(Typeface tf, int style) {
String fontPath = "fonts/fontawesome.ttf";
Typeface typeFace = Typeface.createFromAsset(getContext().getAssets(), fontPath);
this.setTypeface(typeFace);
}
}
当我使用它并添加一个关闭图标时,它会在使用 API 18 的 Genymotion 模拟器上完美显示,但是当我使用 API 21 在手机上运行该应用程序时,它们无法正确显示或显示十字。
是什么导致了这个错误?有什么修复吗?
已修复
问题出在 API 上。已知 Android 5.0.x 存在此问题。正如下面的答案所提到的,通过将 TTf 转换为 OTF 来修复它。 (在某些情况下可能仍然无法正常工作。)众所周知,Android 5.1.x 已修复此问题。
【问题讨论】:
-
您可以在设置字体/文本的位置发布代码吗?图标是否在运行 Api 18 的 Genymotion 图像上正确显示?
-
@fractalwrench 你好,我找到了解决办法。它在下面发布为答案。不过谢谢。 :)
标签: java android user-interface font-awesome genymotion