字符串的字体和显示 (3)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/WAN_EXE/article/details/83241512

安卓有三种字符串,String, String Array, Quantity String(Plurals).

String和String Array容易理解,一个是字符串,一个是字符串数组。

通过

String[] planets = res.getStringArray(R.array.planets_array);

就可以在代码中获得字符串数组。

第三种是一个特例,为什么叫Quantity呢?因为在英语中,一个苹果,one apple, 两个苹果,two apples,可以看到根据量词的不同,后面的名词也会做出相应的变化。所以为了区别这个很常见的语法习惯,Android单独一个Quantity字符串表示。

quantity可以用["zero" | "one" | "two" | "few" | "many" | "other"]这些表示,比如

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <plurals name="numberOfSongsAvailable">
        <item quantity="one">%d song found.</item>
        <item quantity="other">%d songs found.</item>
    </plurals>
</resources>

一首歌的时候用前面的one内容,其它歌曲的时候用下面的内容,就会自动加上s后缀。

int count = getNumberOfSongsAvailable();
Resources res = getResources();
String songsFound = res.getQuantityString(R.plurals.numberOfSongsAvailable, count, count);

1.特殊字符串

安卓可以表示特殊字符串,比如&, ?, <等,一般都是用\@表示。

还支持像printf函数那样的格式化输出。

源码在appresources目录里面。

写了三个函数专门对字体进行加粗,斜体,颜色变化。

CharSequence style = bold(italic(getString(R.string.guide)), " ",
                color(Color.RED, getString(R.string.guide)));

2.html格式

Android支持下面的html元素,可以在字符串中使用,


    Bold: <b>, <em>
    Italic: <i>, <cite>, <dfn>
    25% larger text: <big>
    20% smaller text: <small>
    Strikethrough: <s>, <strike>, <del>
    Underline: <u>
    Superscript: <sup>
    Subscript: <sub>
    Bullet points: <ul>, <li>
    Line breaks: <br>
    Division: <div>
    CSS style: <span style=”color|background_color|text-decoration”>
    Paragraphs: <p dir=”rtl | ltr” style=”…”>

3.字体的替换

在res/font/文件夹中存放字体,然后使用利用Annotation对字符串进行解析,最终程序的显示效果

其中官方有个很好的应用展示各种材料设计,显示不同的内容。

https://github.com/nickbutcher/plaid

猜你喜欢

转载自blog.csdn.net/WAN_EXE/article/details/83241512
今日推荐