我想在TextView应用程序中添加大量的格式化文本,但不知道如何...我尝试将它添加到我的字符串资源文件但id没有工作.. ii做了这个 -
<string name="some_text">Create stickers for Gboard on Google Play
01 September 2017
Posted by Alan Ni, Associate Product Manager, Gboard
Messaging is getting more and more expressive -- today you can say I love you
</string>
Run Code Online (Sandbox Code Playgroud)
然后在活动......
TextView textView=(TextView) findViewById(R.id.some);
textView.setText(getString(R.string.some_text));
Run Code Online (Sandbox Code Playgroud)
但它只是以相同的格式显示所有内容..我希望它以粗体标题并为事物添加颜色..基本上我想显示我们如何在MS Office中编写
Adv*_*Dog 11
如果您想要设置文本样式,您可以选择一些选项.
最简单的方法是使用HTML标记.你必须用它包装它CDATA.
例如,您可以创建String:
<string name="some_text"><![CDATA[Create stickers for <b>Gboard</b>...]]></string>
Run Code Online (Sandbox Code Playgroud)
然后要显示它,你可以做到这一点.
Spanned sp = Html.fromHtml( getString(R.string.some_text));
tv.setText(sp);
Run Code Online (Sandbox Code Playgroud)
现在,实际使用Android的样式将更加强大.
您需要创建多个TextViews,每个都有自己的样式,这样您就可以对文本的精确外观进行大量控制.
例如,这是一个你可以做类似的布局.
<?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">
<!-- Creating a Title for your layout. -->
<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"
/>
<!-- Creating a subheader for your layout. -->
<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>
Run Code Online (Sandbox Code Playgroud)
对于您拥有的每种不同格式,您需要创建一个新的格式TextView并应用正确的样式.
我建议坚持使用任何东西@style/TextAppearance.AppCompat...,因为这将为你提供一个非常好的文本大小/重量的起点.
您可以使用这样的东西Title,Caption,Body2,Body1,等等.
然后在路上,当您对Styles有更多经验时,您可以开始创建自己的.
例如,假设我想要所有的标题RED.首先在其中创建一个Stylestyles.xml
<style name="myTitleStyle" parent="TextAppearance.AppCompat.Title">
<item name="android:textColor">@color/red</item>
</style>
Run Code Online (Sandbox Code Playgroud)
然后你可以将它用作以前的样式.
<!-- Creating a Title for your layout. -->
<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"
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9982 次 |
| 最近记录: |