2015-09-25 2 views
1

Я использовал FontAwesome для значков в своем приложении. В частности, в некоторых TextView. Поскольку я хочу, чтобы в некоторых определенных текстовых представлениях я создал пользовательский текстовый вид.Значки FontAwesome не отображаются в Android-приложении [FIXED]

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 исправил это.

+0

Можете ли вы отправить код, где вы устанавливаете шрифт/текст? Правильно ли отображаются значки на изображении Genymotion, работающем с Api 18? – fractalwrench

+0

@fractalwrench Привет, я нашел исправление. Это опубликовано как ответ ниже. Спасибо хоть. :) –

ответ

2

В версии Lollipop до 5.1 некоторые пользовательские шрифты, загруженные с использованием API Typeface.createFromAsset(), не отображают правильный шрифт. Эта проблема была устранена выпуском Android 5.1, но все равно может повлиять на пользователей приложений, работающих под управлением Android. Lollipop 5.0.x.

Попробуйте преобразовать файл «.TTF» в файл «.OTF». В моем случае это помогло мне решить эту проблему.

+0

Спасибо! Это оно. –