如何使XML字符串加粗,加下划线等?

时间:2013-07-22 08:37:21

标签: android xml markup pretty-print

http://docs.fusioncharts.com/charts/contents/Styles/Font.html

我试过这个,还有很多事情,但未能这样做。 这就是我想要的。

<string name="ss">Bold. Underlined. Italic. Big. Small</string>

我想格式化一点字符串。 在它写得大胆的地方,我希望它是大胆的......和其他人一样。

我尝试了很多标签......但没有任何效果,我在Google或SO上找不到任何东西。

我知道如何在textview中做到这一点,但那不是我想要的......

我正在向显示它的活动发送一些文本资源... 如果我使用不同的文本视图,我必须创建其中的几个,每当我想要粗体文本时,我都需要创建一个新的文本视图,并且这不是很优雅。

有没有办法简单地在XML文件中执行此操作?或其他一些方式?

5 个答案:

答案 0 :(得分:19)

尝试将标记的文本包装在CDATA标记中。例如:

<string name="ss"><![CDATA[<b>Bold.</b> <u>Underlined.</u> <i>Italic.</i> <big>Big.</big> <small>Small</small>]]></string>

然后在您想要显示它的地方使用Html.fromHtml:

Html.fromHtml(getString(R.string.ss))

答案 1 :(得分:6)

这个问题让我疯狂多年。这太简单了,你只想让它工作!!!

无论如何,我在http://www.coderzheaven.com/2011/06/19/styling-text-in-android-through-xml/

找到了答案

关键是使用getResources().getText(R.string.xxxx)将资源加载为CharSequence,这将保留所有样式信息,并允许您使用内联样式标记。 我的错误是使用getString(),因为加载资源时getString()会导致字符串丢失所有样式信息。

答案 2 :(得分:3)

例如:

<string name="ss"><font size="15"><b>Parrainage</b></font><u>subscribe</u></string>

b = bold et u = underline ..... etc

答案 3 :(得分:1)

这对我有用。

<string name="welcome_messages">Hello, %1$s! You have &lt;b>%2$d new messages&lt;/b>.</string>

txt.setText(Html.fromHtml(getString(R.string.welcome_messages)));

更多细节检查官方网站: https://developer.android.com/guide/topics/resources/string-resource.html#StylingWithSpannables

答案 4 :(得分:-5)

在dimension文件中写道:

<dimen name="size_edittext">180dp</dimen>

并在您的xml布局或活动中调用它:

android:@dimen/ size_edittext