java 界面strings.xml_Android 开发中应该知道的关于strings.xml的事

本文主要讲解Android开发中常见的strings.xml的使用技巧。

避免过度复用

不要复用不同页面上的字符串

1.假设你现在在Sign In与Sign Up两个界面上都设置了一个加载提示框,因为两个都是用于提示正在加载中的,因此你打算使用相同的提示语 —— R.string.loading

880d30dae4fbc8e2f74ca37ba9e270b9.png

不过后来PM说这样实在太不友好了,因此你打算用两个更具体点的提示语来代替,因此你将你的strings.xml修改为了:

ad7d8125bc670b08bab2bdda2d333fd9.png

2.对于一个国际化的项目,你并不知道应用最后需要支持多少种语言,可能你需要在某些语言中表述某些情景是相同的词汇,而某些语言中某些情景压根不同,譬如:

9298b327ac4d2c0c9f04ce9bf0d69977.png

216b74091a5dee382481af236079ece3.png

注意,在英文版本中的strings.xml中对于R.string.download_file_yes 与 R.string.terms_of_use_yes 都使用了Yes,而Ukrainian版本中则是两个单词。

合理分割

对于相同页面中的字符串以前缀与注释分割

1.添加前缀到字符串上有助于辅助快速地识别字符串是属于哪个页面的。

2.清晰的字符串的区分也有助于未来对国际化的支持,可以按照页面来逐个地进行多语言支持。

Format

使用 Resources#getString(int id, Object...formatArgs) 来格式化字符串

尽量避免使用+来连接字符串,因为在不同的语言里对于词汇的划分是不一致的。

88e99b7845c47c2063d5790508b736e3.png

a6c6c84d74aebb529947f7ece1283a0b.png

ce6bcbec9967ff36a5a24c12e4046744.png

84fef4f285167601baeb18e962f08212.png

Plurals:复数处理

使用Resources#getQuantityString (int id, int quantity)来处理复数字符串

尽量不要在Java代码中判断是否需要使用复数表述,同样是因为不同的语言对于复数表述的文法规则是不一样的。

57b08bbfc831400bcded86e1959d44ae.png

0e994051bbe3c13d3717e82e019a774b.png

正确的方法是使用Resources#getQuantityString (int id, int quantity)来进行处理:

5cf33d58019a9688fe02a0a6091ecd5c.png

fe84f231d111b9029a7c3cd3749443d9.png

Words highlighting:单词高亮

使用HTML文法规范来进行单词高亮

如果我们希望在TextView中修改一些单次的颜色,可能ForegroundColorSpan不一定是最佳的选择,同样是因为基于下标的高亮策略可能在不同的语言中出现问题。最好的呢,也还是使用HTML的字体颜色标签进行控制,譬如你希望在Discover and play games这一段话中需要将Discover与play进行高亮展示:

0512196d88c8c8f3f6906f69ac7b6852.png

84fef4f285167601baeb18e962f08212.png

1460000006058452

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值