2016-12-28 7 views
0

Я использую пользовательские шрифты в моем приложении Таким образом, я использовал следующий кодНастройка пользовательских шрифтов для 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 становится полужирным шрифтом. Я не знаю, почему это происходит. И это очень противоречиво, это не происходит каждый раз.

in the pic, you see in one row text is bold.

ответ

0

Попробуйте добавить это к вашему INIT:

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

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

+0

Как кешировать шрифт? –

+0

@ShreenivasChikati Загрузите его один раз и сохраните ссылку на него. – Karakuri

+0

ok, но int flags = getPaintFlags() | Paint.ANTI_ALIAS_FLAG | Paint.SUBPIXEL_TEXT_FLAG; setPaintFlags (флаги); не помог мне –

Смежные вопросы