Android字符串资源
1.文件位置:
res/values/filename.xml
filename 是任意值。<string>
元素的 name
用作资源 ID。
2.资源引用
指向 String
的资源指针。
2.1.在 Java 中:R.string.string_name
String string = getString(R.string.hello);
- 1
2.2.在 XML 中:@string/string_name
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" />
- 1
- 2
- 3
- 4
3.语法
<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="string_name" >text_string</string>
</resources>
- 1
- 2
- 3
- 4
- 5
- 6
4.字符数组
4.1.文件位置:
res/values/filename.xml
filename 是任意值。<string-array>
元素的 name
用作资源 ID。
4.2.编译资源的数据类型
指向 String
数组的资源指针。
4.3.资源引用
在 Java 中:R.array.string_array_name
Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);
- 1
- 2
在XML中:@array/string_array_name
<Spinner android:layout_width="wrap_content" android:layout_height="match_parent" android:entries="@array/string_array_name"/>
- 1
- 2
- 3
- 4
4.4语法:
<?xml version="1.0" encoding="utf-8"?>
<resources> <string-array name="string_array_name"> <item>text_string1</item> <item>text_string2</item> </string-array>
</resources>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
5.特殊字符的处理
字符 | 转义形式 |
---|---|
@ | @ |
? | ? |
< | < |
& | & |
单引号 (' ) |
以下任意字符: ' \' 在双引号中包括整个字符串(例如,“This’ll work”) |
双引号 (" ) |
以下任意字符: " \" 请注意,您必须转义双引号。在单引号中包括字符串没有任何作用。 |
6.设置字符串格式
如需设置字符串的格式,可以在字符串资源中放入格式参数:
<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>
- 1
格式字符串有两个参数:%1$s
为字符串,而 %2$d
为十进制数字。然后,就可通过调用 getString(int, Object...)
来设置字符串格式。例如:
String text = getString(R.string.welcome_messages, username, mailCount);
- 1
7.使用 HTML 标记设置样式
可以使用 HTML 标记为字符串添加样式设置。例如:
<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="welcome">Welcome to <font color="red">Android</font>!</string>
</resources>
- 1
- 2
- 3
- 4
支持以下 HTML 元素:
- 粗体:<b>、<em>
- 斜体:<i>、<cite>、<dfn>
- 文本放大 25%:<big>
- 文本缩小 20%:<small>
- 设置字体属性:<font face=“font_family” color=“hex_color”>。可能的字体系列示例包括
monospace
、serif
和sans_serif
。 - 设置等宽字体系列:<tt>
- 删除线:<s>、<strike>、<del>
- 下划线:<u>
- 上标:<sup>
- 下标:<sub>
- 列表标记:<ul>、<li>
- 换行符:<br>
- 区隔标记:<div>
- CSS 样式:<span style=“color|background_color|text-decoration”>
- 段落:<p dir=”rtl | ltr” style=”…”>
7.1带转义实体的 HTML 标记,并在完成格式设置后通过 fromHtml(String)
恢复这些实体。
(1)带样式的文本资源存储为 HTML 转义字符串:
<resources>
<string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string>
</resources>
- 1
- 2
- 3
带格式的字符串中添加了 `` 元素。请注意,开括号使用 <
符号实现了 HTML 转义。
(2)然后照常设置字符串格式,但还需调用 fromHtml(String)
,以将 HTML 文本转换成带样式的文本:
String text = getString(R.string.welcome_messages, username, mailCount);
Spanned styledText = Html.fromHtml(text, FROM_HTML_MODE_LEGACY);
- 1
- 2
由于 fromHtml(String)
方法会设置所有 HTML 实体的格式,因此请务必使用 htmlEncode(String)
转义带格式文本的字符串中任何可能存在的 HTML 字符。例如,如果您打算对包含“<”或“&”等字符的字符串进行格式设置,则在设置格式前必须先转义这类字符。如此一来,当通过 fromHtml(String)
传递带格式的字符串时,字符才会以最初的编写形式显示。例如:
String escapedUsername = TextUtils.htmlEncode(username);
String text = getString(R.string.welcome_messages, escapedUsername, mailCount);
Spanned styledText = Html.fromHtml(text);
- 1
- 2
- 3
- 4
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/107074712
- 点赞
- 收藏
- 关注作者
评论(0)