изменить шрифт по умолчанию для приложения Android

Хорошо, я знаю, как изменить шрифт, используемый в отдельных текстовых полях в моем приложении, но я хочу, чтобы ВЕСЬ текст в моем приложении использовал этот пользовательский шрифт и цвет, и в настоящее время единственный способ, которым я могу это сделать, это ссылка каждое поле и установите для них правильный шрифт и цвет. хотя это выполнимо, это кажется довольно неуклюжим методом, есть ли лучший способ?


person Kit Ramos    schedule 25.07.2013    source источник
comment
Я думаю, вам нужно было написать свой собственный стиль и/или тему. Посмотрите эти полезные ответы: stackoverflow. com/questions/8787690/ или stackoverflow.com/questions/4395309/ или, может быть, это stackoverflow.com/questions/2973270/ .   -  person JJ86    schedule 25.07.2013


Ответы (3)


Вы можете создать собственный TextView и ссылаться на него везде.

public class TypefacedTextView extends TextView {

    public TypefacedTextView(Context context, AttributeSet attrs) {
        super(context, attrs);

        Typeface typeface = Typeface.createFromAsset(context.getAssets(), fontName);
        setTypeface(typeface);
    }
}

Внутри view.xml

<packagename.TypefacedTextView
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:text="Hello"/>
person Vipul    schedule 25.07.2013
comment
Я как раз собирался отправить тот же ответ :) - person gunar; 25.07.2013

Поместите разные файлы шрифтов в папку с ресурсами...

TextView mytextView=(TextView)findViewById(R.id.txtbx);
Typeface fonttype=Typeface.createFromAsset(getAssets(),"fonts/fontname.ttf");
mytextView.setTypeface(fonttype);
person selva_pollachi    schedule 25.07.2013

Создав элемент Font-Famly в файле ресурсов шрифта и добавив семейство шрифтов в тему приложения.

in res>values>styles>

----------
<resources>
<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <!--Add this below line-->
        <item name="android:fontFamily">@font/PacificoRegular</item>
    </style>
</resources>

person Wishwa Gayan    schedule 17.04.2019