我在我的應用程序中使用了FontAwesome圖標。特別是在一些TextViews中。由於我想在某些特定的文本視圖中,我做了一個自定義文本視圖。FontAwesome圖標未顯示在Android應用程序中[已修正]
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);
}
}
當我使用它並添加關閉圖標,它就會完全顯示在Genymotion仿真器API 18,但是當我在我的手機上運行的應用程序與API 21,他們不能正確顯示或者顯示十字架。
是什麼導致了這個錯誤?任何修復?提前致謝。
注意 問題出在API上。 Android 5.0.x已知有此問題。正如下面的答案所提到的,通過將TTf轉換爲OTF來修復它。 (在某些情況下可能不起作用。)已知Android 5.1.x已經解決了這個問題。
你可以在你設置字體/文本的地方發佈代碼嗎?運行Api 18的Genymotion圖像上的圖標是否正確顯示? – fractalwrench
@fractalwrench你好,我找到了修復。它在下面發佈爲答案。不過謝謝。 :) –