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

2023-11-18

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

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串的字体和显示 (3) 的相关文章

随机推荐

  • 机器学习吴恩达编程作业题6-支持向量机

    1 支持向量机 1 1示例数据集1 将ex6data1 mat文件复制到D Machine Learning ex6目录下 在当前目录下建立plotData m文件 源码与之前类似 数据与两次考试与录取结果数据集类似 绘制相应的数据集 1
  • Kettle的改名由来

    不多说 直接上干货 当时啊 因为很多开源项目到最后都成了无人管的项目 为了避免这种情况的发生 要尽快为Kettle项目构建一个社区 这就意味着 在随后的几年可能需要回答上千封的电子邮件和论坛帖子 幸运的是 Kettle很快获得了开源商业智能
  • 薅羊毛利器——青龙面板+ndjdc搭建脚本运行环境

    青龙面板 nvjdc 青龙面板是一个国人开发的 自持脚本运行的工具 官网是这么描述的 支持python3 javaScript shell typescript 的定时任务管理面板 我们这里看中是它可以定时执行javaScript脚本 那么
  • Kali Linux 2016 Metasploit连接postgresql数据库

    kali linux 2016版本中metasploit不能自动连接postgresql数据库 出现postgresql selected no connection 解决方案如下 输入命令 msfdb 输入命令 msfdb init 现在
  • 综合能源系统(10)——综合能源系统运行管控平台技术综合能源系统交易机制、商业模式

    综合能源系统关键技术与典型案例 何泽家 李德智主编 1 我国能源市场分析 我国是世界上最大的能源生产国与能源消费国 以化石能源为主体的能源消费结构使我们面临能源短缺 环境污染和气候变化等严峻挑战 能源结构转型迫在眉睫 我国能源转型向侧重于以
  • 深聊性能测试,从入门到放弃之:我只做了这几点,公司的架构师也对我刮目相看

    1 引言 2 执行步骤 2 1 测试确认 2 2 通过标准 2 3 测试设计 2 4 数据准备 2 5 处理问题 3 总结 1 引言 接着上一篇 深聊性能测试 从入门到放弃之 性能测试如何做 这篇我们看看 到底做到那几点 架构师也对我刮目相
  • python如何输入一个整数逆序输出_「每日一练」巧用Python识别输入的是几位数

    Python对于数字的处理能力是很强大的 那么你能让Python瞬间知道输入的是个几位数 并且逆序打印出所有的数字吗 往下看 就是这么简单 案例 识别输入的是几位数 并且逆序打印出所有的数字 先上代码 运行效果 题目详述 程序分析 要实现一
  • 数据结构与算法:KMP模式匹配算

    KMP模式匹配算法原理 如果主串S abcdefgab 其实还可以更长一些 我们就省略掉只保留前9位 我们要匹配的T abcdex 那么如果用BF算法的话 前5个字母 两个串完全相等 直到第6个字母 f 与 x 不等 如图5 7 1的 所示
  • VTK可视化工具库:编译与添加模块

    VTK 可视化工具库 一 编译 VTK使用CMake作为项目管理工具 在源代码根目录下有CMakeLists txt文件 1 编译过程 运行CMakeGUI 选择源代码目录和编译目录 不要使用相同目录 依次点击configure gener
  • 【第十届泰迪杯B题电力负荷预测代码】

    第十届泰迪杯B题电力负荷预测源代码及可视化数据图 包括全部问题的代码 现在的数据分析是根据官网暂时发布的数据进行的分析 后续会继续更新代码 import matplotlib pyplot as plt import seaborn as
  • 音乐人解密:究竟是如何一步一步成为音乐人的?

    音乐人解密 究竟是如何一步一步成为音乐人的 音乐是人类伟大的产物 近些年来越来越多的人都开始尝试学习音乐 成为一名音乐人 而艺术高考等途径也为许多想要学习音乐 成为职业歌手或者编曲师的人群提供了途径 然而想要成为一名合格的音乐人并不是那么容
  • 烧录的HEX文件大于flash存储空间问题

    一 背景 在用一款芯片NRF52832做项目 发现使用Keil编译后的文件大小达到了1M 但是片内flash资源只有512K 结果程序可以正常通过J link烧写 且运行正常 芯片资源如下 nRF52832 是 32 位 ARM Corte
  • A Survey on Metaverse: the State-of-the-art,Technologies, Applications, and Challenges

    本文是对 A Survey on Metaverse the State of the art Technologies Applications and Challenges 的翻译 元宇宙综述 现状 技术 应用和挑战 摘要 1 引言 2
  • vue生命周期mounted和activated使用、踩坑

    activated 说到activated不得不提到keep alive 你切换出去又切出来会调用到它 你可以理解为生命周期钩子函数 用法也一样 mounted 指的是实例被挂载后调用 如果没有keep alive每次切回来该组件都会触发一
  • 理解Spring的AOP和Ioc/DI就这么简单

    一 什么叫Ioc DI Ioc Inversion of Control 控制反转 DI Dependency Injection 依赖注入 其实这两个概念本质上是没有区别的 那我们先来看看什么叫做Ioc 假设这么一个场景 在A类中调用B类
  • 华硕重装系统键盘灯失效 =>重装ATK驱动

    1 点击网站华硕服务与支持 https www asus com cn support 2 输出笔记本型号 选择产品 3 下载驱动 3 1选择驱动程序和工具软件 3 2选择操作系统 3 3找到ATK驱动并且下载 4 安装驱动 4 1安装AT
  • 如何使用随机数实现自动发扑克牌?

    学习不止 问答不止 一 粉丝问题 二 相关函数说明 1 函数说明 产生随机数的方法很多 常用的是rand srand 来看一下这2个函数的定义 SYNOPSIS include
  • 如何导入符号 emdk?

    我在最新的 Android Studio 中创建了一个新的 android projekt 我想导入和使用 Symbol EMDK 包 虽然我像这样放入 gradle implementation com symbol emdk 9 1 1
  • 一文带您了解软件多租户技术架构

    1 多租户技术概述 随着近几年云计算技术的不断发展和成熟 云计算多租户技术在 SaaS 服务领域获得得快速的发展和广泛的应用 基于多租户技术的业务平台首先要保证不同租户业务的隔离 业务隔离主要包括下面 2 个方面 物理隔离 租户开展业务所依
  • 字符串的字体和显示 (3)

    安卓有三种字符串 String String Array Quantity String Plurals String和String Array容易理解 一个是字符串 一个是字符串数组 通过 String planets res getSt