Настройка пользовательского шрифта для Textview

Я использую пользовательские шрифты в своем приложении
Поэтому я использовал следующий код

public class BrandonBlackTextView extends TextView {

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

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

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

public void init() {
    Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "font/brandon_blk.ttf");
    setTypeface(tf ,1);

}

везде, где я хочу использовать, я использую это textview. Это работает.
Но проблема в том, что иногда я не знаю, почему, но текст внутри textviewстановится жирным . Я не знаю, почему это происходит. И это очень непоследовательно, это происходит не каждый раз.

на рисунке, вы видите в одной строке текст жирным шрифтом.

1 ответ

  1. Попробуйте добавить это в init:

    int flags = getPaintFlags() | Paint.ANTI_ALIAS_FLAG |  Paint.SUBPIXEL_TEXT_FLAG;
    setPaintFlags(flags);
    

    Кроме того, вы должны кэшировать шрифт где-то вместо того, чтобы загружать его снова для каждого TextView.