如果您想为文本添加样式,有几种选择。
最简单的方法是使用HTML标签。但是您需要用CDATA
将其包装起来。
例如,您可以创建您的字符串:
<string name="some_text"><![CDATA[Create stickers for <b>Gboard</b>...]]></string>
然后要显示它,你可以这样做。
Spanned sp = Html.fromHtml( getString(R.string.some_text))
tv.setText(sp)
更稳健的方法是实际使用 Android 的样式。
您需要创建多个具有自己样式的 TextView
,这将允许您对文本的外观进行精确控制。
例如,您可以创建类似以下布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
style="@style/TextAppearance.AppCompat.Title" <!-- Title Style -->
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Create stickers for Gboard on Google Play"
/>
<TextView
style="@style/TextAppearance.AppCompat.Caption" <!-- Caption Style -->
android:id="@+id/subheader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="01 September 2017"
/>
</LinearLayout>
对于每种不同的格式,您需要创建一个新的
TextView
并应用正确的样式。
我建议坚持使用
@style/TextAppearance.AppCompat...
以下的任何内容,因为这将为您的文本大小和粗细提供非常好的起点。
您可以使用
Title
、
Caption
、
Body2
、
Body1
等等。
此后,当您将样式掌握得更熟练时,就可以开始创建自己的样式。
例如,假设我想要所有的标题都是
RED
。您首先需要在
styles.xml
中创建一个样式。
<style name="myTitleStyle" parent="TextAppearance.AppCompat.Title">
<item name="android:textColor">@color/red</item>
</style>
然后您可以像之前的样式一样使用它。
<TextView
style="@style/myTitleStyle" <!-- myTitleStyle Style -->
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Create stickers for Gboard on Google Play"
/>