这是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>
虽然图形布局显示粗体文本,但设备上却没有。它是设备还是什么?
更新
对于那些不断要求完整XML的人来说,这里会更新。一个简单的相对布局。这是Java代码:
this.titleTextView.setText(this.modalListState.title);
需要考虑的事项:可能是因为设备字体?有没有人有Galaxy 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样式用于相关活动。
答案 0 :(得分:34)
好吧,我发现这个问题很愚蠢。我在设备上使用自定义字体,而不是默认字体。一旦我切换到默认值,每件事都按预期工作!
答案 1 :(得分:20)
有一种方法,你可以通过调用setTypeface方法设置textview字体...
textView.setTypeface(null, Typeface.BOLD_ITALIC);
textView.setTypeface(null, Typeface.BOLD);
textView.setTypeface(null, Typeface.ITALIC);
并且也参考此链接...
答案 2 :(得分:5)
大部分答案都是正确的。
您还可以使用所谓的: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 的好处在于,您可以在字符串的不同部分应用多个跨度!正如您所注意到的,我只在字符串的一部分上应用了粗体类型的面(您指定了开始和结束索引),它应该如下所示:
没有是的!
在 setSpan 方法中,您可以按特定顺序指定要应用的SPAN,起始索引,结束索引和标志(我总是使用0)。
您甚至可以应用其他跨度,例如更改文字大小(使用RelativeSizeSpan),甚至是颜色(使用ForegroundColorSpan)等等!
以下是颜色范围的示例,您可以通过以下方式实现:
text.setSpan ( new ForegroundColorSpan ( Color.RED) , 0 , notBold .length () , 0 );
现在,字符串的第一部分(包含否一词)将以红色显示!
答案 3 :(得分:5)
在移动设备上运行应用程序时,TextView未变为粗体的原因是您必须在活动中使用Calligraphy。因此,要将样式更改为粗体,您只需在java文件中编写以下代码即可。
textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
祝你好运
答案 4 :(得分:3)
维度文件中定义的字体大小可能在运行期间未被拾取。 猜猜你没有在模拟器中运行应用程序。
检查以下内容以确保其不是设备。
答案 5 :(得分:1)
尝试在strings.xml文件中使用HTML标记 。这就是你如何做到的,android string.xml reading html tags problem
以编程方式执行,
TextView t = new TextView(mContext);
t.setText(Html.fromHtml("<b>This is bold</b>"));
答案 6 :(得分:1)
必须有字体的粗体/斜体/下划线(即目标)版本。系统不会为你神奇地创造它。
因此,请确保包含字体的目标变体。
答案 7 :(得分:1)
我遇到了与转义字符<
类似的问题。您必须使用<
。例如:
<string name="greetings"><b>From Russia with love</b></string>
它写在official site。
答案 8 :(得分:0)
为所有设备布局创建自定义主题。 并设置为 textview 。
我认为问题是文字会很慢,所以你可以得到任何效果。
如果您已测试此问题,请将字体大小更改为40sp并运行 会发生什么?
答案 9 :(得分:0)
您能否为我们发布所有java和xml代码以收集有关您的问题的更多信息?
问题可能不在您向我们展示的TextView中,而是到目前为止
android:textStyle="bold"
似乎适用于您的图形布局。