TextView isBold всегда возвращает NORMAL
Я устанавливаю гарнитуру текстового представления, как это
textView.setTypeface(tf_roboto_medium, Typeface.BOLD);
Когда я проверяю стиль с помощью этой команды, она оценивается как истинная.
if (textView.getTypeface().getStyle() == Typeface.NORMAL) {
// always here
}
else {
// never here
}
[РЕДАКТИРОВАТЬ] Вот мой контент XML для TextView
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:text="Train"
android:textColor="#777777"
android:gravity="bottom|center"
android:singleLine="true"
android:id="@+id/txt_train"
android:layout_gravity="left"
android:layout_weight="15"
android:textSize="32px"
android:onClick="onTrainClick"
android:clickable="true" />
Что я делаю неправильно?
PS: я читал другие посты, просящие то же самое. Ни один из них, кажется, не работает для меня. Таким образом, вопрос
2 ответа
Попробуйте один из них это:
if (textView.getTypeface().isBold()) {
if ((textView.getTypeface().getStyle() & Typeface.BOLD) > 0) {
Из того, что я вижу, есть битовая маска, используемая для стилей шрифта. Нормальный == 0, поэтому могут быть проблемы с 0 & 0
Вы можете сделать строку:
<string name="train"><b>Train</b></string>
А затем установите:
android:text="@string/train"