Android – 将TextView设置为粗体不起作用

这里是XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/modal_list_row" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingBottom="7.5dp" android:orientation="vertical" > <TextView android:id="@+id/title_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:gravity="center" android:text="@string/alert_title_small" android:textColor="@color/alert_dialog_text_color" android:textSize="@dimen/alert_dialog_title_font_size" android:textStyle="bold" /> </RelativeLayout> 

虽然graphics布局显示粗体文本,但在设备上不是。 这是一个设备的东西或什么?

更新:

对于那些不断要求完整的XML的人来说,这里是被更新的。 一个简单的相对布局。 这里是Java代码:

 this.titleTextView.setText(this.modalListState.title); 

需要考虑的事情:这可能是由于设备字体? 有没有人有银河S3确认? 这可能是活动风格吗? 这是用于整个应用程序的一个:

 <resources xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vXX/styles.xml on newer devices. --> <style name="AppBaseTheme" parent="android:Theme.Light"> <!-- Theme customizations available in newer API levels can go in res/values-vXX/styles.xml, while customizations related to backward-compatibility can go here. --> </style> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> </style> <style name="TransparentActivity" > <item name="android:windowBackground">@android:color/transparent</item> <item name="android:colorBackgroundCacheHint">@null</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@android:style/Animation</item> <item name="android:windowNoTitle">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowFullscreen">false</item> </style> 

TransparentActivity风格用于相关的活动。

  • 尽pipestate_pressed工作,State_Selected不工作
  • 在TextView / EditText中选择一个单词
  • ScrollView内容更新
  • 如何在Android中将字体粗细设置为浅色,常规
  • 在运行时设置字体,Textview
  • 如何检测ActionBar标题上的点击?
  • TextView可以选择并包含链接吗?
  • 在android中textview.getLineCount总是0
  • 那么,我发现了这个问题的一个愚蠢的答案。 我在设备上使用自定义字体,而不是默认字体。 一旦我切换到默认的,每个事情都按预期工作!

    有一种方法,你可以通过调用setTypeface方法来设置textview字体…

      textView.setTypeface(null, Typeface.BOLD_ITALIC); textView.setTypeface(null, Typeface.BOLD); textView.setTypeface(null, Typeface.ITALIC); 

    也参考这个链接…

    设置TextView样式(粗体或斜体)

    在维度文件中定义的字体大小在运行期间可能没有被拾取。 猜猜你没有在模拟器中运行应用程序。

    检查下面,以确保它不是设备的事情。

    • 确保为目标设备度量标准的正确尺寸文件正确定义了字体大小
    • 有些设备允许更改默认的文字大小。 检查设备中“设置”下的默认文字大小。
    • 您的清单文件中应用了布局显示的活动的任何样式或主题。 尝试删除风格/主题一段时间。
    • 尽量将字体大小编码为偶数,例如24sp
    • 检查任何父级视图/布局的scale属性。
    • 没有代码正在尝试更改运行时的字体样式。

    大部分的答案是正确的。

    你也可以使用所谓的: SpannableString

    你可以这样使用它:

     String bold = "yes !"; String notBold = "no "; SpannableString text = new SpannableString ( notBold + bold ); text.setSpan ( new StyleSpan ( Typeface.BOLD ) , notBold.length () , text .length () , 0 ); myTextView.setText ( text , BufferType.SPANNABLE ); 

    SpannableString的好处在于你可以在string的不同部分应用多重跨度! 正如你注意到的,我只在string的一部分(你指定了开始和结束索引)上应用粗体字体,它应该看起来像这样:

    不, 是的!

    setSpan方法中,指定要应用的SPAN,起始索引,结束索引和标志(我总是使用0),按照特定的顺序。

    您甚至可以应用其他跨度,如更改文本大小(使用RelativeSizeSpan ),甚至颜色(使用ForegroundColorSpan )等等!

    这里是一个颜色范围的例子,你可以通过以下方式实现:

     text.setSpan ( new ForegroundColorSpan ( Color.RED) , 0 , notBold .length () , 0 ); 

    而现在,string的第一部分(包含单词 )将显示为红色!

    尝试使用HTML标记 在你的strings.xml文件中。 这是你怎么做的, android string.xml读取html标签的问题

    要以编程方式进行,

     TextView t = new TextView(mContext); t.setText(Html.fromHtml("<b>This is bold</b>")); 

    我遇到了类似的问题与逃逸字符< 。 你必须使用&lt; 代替。 例如:

     <string name="greetings">&lt;b>From Russia with love&lt;/b></string> 

    它写在官方网站上 。

    你可以请发布你所有的Java和XML代码为我们收集有关您的问题的更多信息?

    这个问题可能不是在你向我们展示的TextView中,而是到目前为止

     android:textStyle="bold" 

    似乎在你的graphics布局上工作。

    为所有设备布局创build自定义主题 。 并设置到你的textview

    我觉得问题是文字会很慢,所以你可以得到任何效果。

    如果你有testing这个问题,然后改变字体大小到40sp和运行发生什么?

    必须有粗体/斜体/下划线(即目标)版本的字体。 系统不会为您创build它。

    从而确保包含字体的目标变体。