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

安卓有三种字符串,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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Arduino的串口通信功能来接收字符串,并通过OLED显示屏进行显示。首先,确保你的Arduino板上有一个可用的串口引脚。然后,按照以下步骤进行操作: 1. 连接OLED显示屏到Arduino板上。根据你所使用的OLED显示屏的型号和接口类型,连接VCC、GND、SCL和SDA引脚到对应的Arduino引脚。 2. 在Arduino IDE中导入相应的库文件。你可以在库管理器中搜索并安装适用于你的OLED显示屏的库文件。 3. 编写Arduino代码。下面是一个示例代码,用于接收串口返回的字符串并在OLED显示屏上显示: ```cpp #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64 Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); void setup() { Serial.begin(9600); // 初始化串口通信 display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // OLED显示屏初始化 display.clearDisplay(); // 清空显示屏缓存 } void loop() { if (Serial.available()) { // 检查串口是否有数据可读取 String receivedString = Serial.readString(); // 读取串口返回的字符串 display.clearDisplay(); // 清空显示屏缓存 display.setTextSize(1); // 设置字体大小 display.setTextColor(SSD1306_WHITE); // 设置字体颜色 display.setCursor(0, 0); // 设置光标位置 display.println(receivedString); // 在显示屏上打印接收到的字符串 display.display(); // 显示缓存中的内容 } } ``` 4. 将代码上传到Arduino板,并通过串口发送字符串。你可以使用Serial.print或Serial.println函数将字符串发送到Arduino板上。 5. 在OLED显示屏上查看串口返回的字符串。Arduino读取串口接收的数据,并在OLED显示屏上显示出来。 请注意,以上代码仅为示例,具体的实现方式可能因为你所使用的OLED库和硬件型号而有所不同。你需要根据你的具体情况进行适当的修改和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值