Можете ли вы установить переменную fontFamily в Android? - PullRequest
0 голосов
/ 26 июня 2019

Я хотел бы знать, возможно ли установить переменную fontFamily в Android Studio так же, как вы можете делать со строками.

Я не хочу делать что-то необычное, например, пользовательские шрифты.Я просто хочу иметь удобство - возможность изменять fontFamily для каждого textView одновременно.

До сих пор я не смог найти тег шрифта.Я надеюсь, что некоторые из вас могут помочь мне.

С уважением и заранее спасибо:)

Ответы [ 2 ]

0 голосов
/ 26 июня 2019

Создайте пользовательский класс TextView и используйте его в textview

public class MetaFont extends TextView {


public MetaFont(Context context, AttributeSet attributeSet, int i) {
    super(context, attributeSet, i);
    a(attributeSet);
}

public MetaFont(Context context, AttributeSet attributeSet) {
    super(context, attributeSet);
    a(attributeSet);
}

public MetaFont(Context context) {
    super(context);
    a(null);
}

private void a(AttributeSet attributeSet) {
    if (attributeSet != null) {
        TypedArray obtainStyledAttributes = getContext().obtainStyledAttributes(attributeSet, ATTRS);
        setTypeface(Typeface.createFromAsset(getContext().getAssets(), "Comfortaa.ttf"));
        obtainStyledAttributes.recycle();
    }
}
}
0 голосов
/ 26 июня 2019

Поместите файл шрифта otf в / assets / fonts, создайте утилиты для работы со шрифтами, такие как:

public class TypefaceUtils {
    private static Typeface myFont1;
    private static Typeface myFont2;

    public static Typeface getMyFont1() {
        return myFont1;
    }

    public static Typeface getMyFont2() {
        return myFont2;
    }

    public static void initTypeface(Context context) {
        if (context != null) {
            myFont1 = Typeface.createFromAsset(context.getAssets(), "fonts/myfont1.otf");
            myFont2 = Typeface.createFromAsset(context.getAssets(), "fonts/myfont2.otf");
        }
    }
}

Начальные шрифты при включении Создайте свою основную активность

TypefaceUtils.initTypeface(this);

Установите шрифт, где вам нужно, например:

textView.setTypeface(TypefaceUtils.getMyFont1());
...