【问题标题】:TextView isBold always returns NORMALTextView isBold 总是返回 NORMAL
【发布时间】:2015-02-19 19:22:30
【问题描述】:

我正在设置这样的文本视图的字体

textView.setTypeface(tf_roboto_medium, Typeface.BOLD);

当我使用此命令检查样式时,它被评估为 true。

if (textView.getTypeface().getStyle() == Typeface.NORMAL) {
// always here
}
else {
// never here
}

[编辑] 这是我的 TextView 的 xml 内容

<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:我读过其他帖子要求同样的事情。它们似乎都不适合我。因此问题

【问题讨论】:

    标签: android fonts textview styles typeface


    【解决方案1】:

    尝试以下方法之一:

    1. if (textView.getTypeface().isBold()) {
    2. if ((textView.getTypeface().getStyle() &amp; Typeface.BOLD) &gt; 0) {

    据我所知,字体样式使用了一个位掩码。正常 == 0,因此 0 和 0 可能存在问题

    【讨论】:

    • 1. isBold() - 相同的行为。总是说“不大胆”。 2.这是编译错误。
    • 是的,我忘了 > 0 :) 它仍然不应该有所作为,因为它是 isBold() 的实现。我没有更多的想法,也许字体有问题......
    • 感谢马克的评论。我尝试了stackoverflow问题中可用的所有内容。似乎没有任何工作。我将禁用字体并检查一次。
    【解决方案2】:

    你可以做一个字符串:

    <string name="train"><b>Train</b></string>
    

    然后设置:

    android:text="@string/train"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 2014-03-04
      相关资源
      最近更新 更多