2014-12-17 2 views
0

Я пытаюсь установить собственный шрифт для всех моих текстовых/EditViews и т. Д. И я последовал за этим вопросом: Is it possible to set a custom font for entire of application?Попробуйте использовать собственный шрифт в приложении throws error

Для этого у меня есть файл .ttf в assets/Fonts/myFont.ttf. Для того, чтобы добавить этот Font всем моим TextViews я Переопределение TextView-Class:

public class MyCustomTextView extends TextView { 

public MyCustomTextView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    init(); 
} 

public MyCustomTextView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    init(); 
} 

public MyCustomTextView(Context context) { 
    super(context); 
    init(); 
} 

private void init() { 
    Typeface tf = Typeface.createFromAsset(getContext().getAssets(), 
              "myFont.ttf"); 
    setTypeface(tf); 
} 

}

Чтобы добавить это к моему TextView я просто в макете:

<com.android.faccess.MyCustomTextView 
    android:id="@+id/textview" 
    style="@style/textview" /> 

Где Стиль:

<style name="textview"> 
    <item name="android:layout_width">fill_parent</item> 
    <item name="android:layout_height">28dp</item> 
    <item name="android:layout_gravity">center_horizontal|center_vertical</item> 
    <item name="android:textSize">20sp</item> 
    <item name="android:layout_marginLeft">5dp</item> 
    <item name="android:layout_marginRight">5dp</item> 

Ошибка

Я думаю, что мне не хватает чего-то действительно простого. Это LogCat:

12-17 10:16:21.633: E/AndroidRuntime(2094): android.view.InflateException: Binary XML file line #8: Error inflating class com.android.faccess.MyCustomTextView 12-17 10:16:21.633: E/AndroidRuntime(2094): Caused by: java.lang.RuntimeException: native typeface cannot be made 12-17 10:16:21.633: E/AndroidRuntime(2094): at android.graphics.Typeface.<init>(Typeface.java:175) 12-17 10:16:21.633: E/AndroidRuntime(2094): at android.graphics.Typeface.createFromAsset(Typeface.java:149) 12-17 10:16:21.633: E/AndroidRuntime(2094): at com.android.faccess.MyCustomTextView.init(MyCustomTextView.java:28) 12-17 10:16:21.633: E/AndroidRuntime(2094): at com.android.faccess.MyCustomTextView.<init>(MyCustomTextView.java:18) 12-17 10:16:21.633: E/AndroidRuntime(2094): ... 51 more

Я занимаюсь разработкой для Android 4.0 и выше, так что не нужно беспокоиться об утечках с этим раствором.

Любая помощь приветствуется.

+0

Попробуйте этот ответ, может быть это ваш problem.http: //stackoverflow.com/questions/19615217/changing -font-in-android-app-crashes-the-application-native-typeface-не может быть –

+0

@RemeesMSyde Это сработало! Ницца. Отправьте его как ответ, и я буду отмечать как принятый! Спасибо! – MMike

+0

Ответа на этот вопрос dude –

ответ

0

Вы создали папку с именами шрифтов в активах или непосредственно помещены в папку с ресурсами? Если папка не создана, создайте папку и разместите там файл шрифта . Если папка с шрифтами не используется, используйте этот путь.

Typeface font = Typeface.createFromAsset(getAssets(), "myfont.TTF"); 

еще

Typeface font = Typeface.createFromAsset(getAssets(), "fonts/myfont.TTF"); 

Для получения дополнительной информации попробуйте this