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风格用于相关的活动。

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

那么,我发现了这个问题的一个愚蠢的答案。 我在设备上使用自定义字体,而不是默认字体。 一旦我切换到默认的,每个事情都按预期工作!

有一种方法,你可以通过调用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它。

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