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

15

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

我尝试了很多方法,但未能达到目标。以下是我的要求。

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

我想稍微格式化一下这个字符串, 加粗的部分,我想让它变成加粗...其他地方也一样。

我试了很多标签......但是什么都没用,我在 Google 或 SO 上也找不到任何资料。

我知道如何在 textview 中实现,但那不是我想要的...

我正在将一些文本资源发送到一个显示它的活动中... 如果我使用不同的 textview,我将不得不创建多个,每当我想要粗体文本时,都需要创建新的 textview,这不是非常优雅。

有没有一种简单的方法可以在 XML 文件中实现这个?或者其他方式?


字符串的一部分应该有像加粗、下划线或更大字体这样的属性……只是字符串的一部分,而不是整个字符串。 - user2599101
5个回答

22

尝试将您标记的文本包装在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))

6
这个问题已经困扰我很长时间了。它其实很简单,但就是想让它正常工作!!
无论如何,我在这里找到了答案:http://www.coderzheaven.com/2011/06/19/styling-text-in-android-through-xml/ 关键在于使用getResources().getText(R.string.xxxx)将资源加载为CharSequence,这将保留所有的样式信息,允许您使用内联样式标签。
我的错误在于使用getString(),因为当加载资源时,getString()会使字符串失去所有的样式信息。

2
请记住,如果您使用getText,则无法使用占位符,例如%s和%d。 - portfoliobuilder

5

例子:

<string name="ss"><font size="15"><b>Parrainage</b></font><u>subscribe</u></string>
b = 粗体 et u = 下划线 .....等等

1
这在你的res/values/strings.XML中是有效的,我已经做了一千次。它与HTML标签不同。 - MattMatt
5
你需要使用getText(string id)代替getString。 - Amritha Dilip

3

-7

在维度文件中写入:

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

然后在你的xml布局或活动中调用它:

android:@dimen/ size_edittext

3
这个回答没有用,请删除这篇帖子。 - Dipali Shah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接