【问题标题】:FontAwesome icons doesn't get displayed on Android AppFontAwesome 图标不会显示在 Android 应用程序上
【发布时间】: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


【解决方案1】:

在 5.1 之前的 Lollipop 版本中,使用 API Typeface.createFromAsset() 加载的某些自定义字体无法以正确的字体呈现。此问题已在 Android 5.1 版本中得到修复,但仍会影响运行 Android 的应用用户Lollipop 5.0.x.

请尝试将您的“.TTF”文件转换为“.OTF”文件。就我而言,它帮助我解决了这个问题。

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 2014-05-17
    • 1970-01-01
    • 2018-09-06
    • 1970-01-01
    • 2017-07-20
    相关资源
    最近更新 更多