HarmonyOS应用开发实战:萌宠日记 - 图标与 Emoji 在 UI 中的应用
HarmonyOS应用开发实战萌宠日记 - 图标与 Emoji 在 UI 中的应用前言在萌宠日记中Emoji 表情符号被大量用作 UI 图标 — 从底部导航栏的 到首页快捷操作的 ⚙️再到健康提醒的 ️。这种以 Emoji 替代传统图标的方式在简化开发流程的同时也为应用增添了温暖、活泼的视觉气质。本文将从萌宠日记的 Emoji 使用实践出发深入解析 Emoji 作为 UI 图标的优势与局限、选择策略、样式控制以及无障碍适配方案。一、Emoji 在萌宠日记中的使用全景1.1 使用场景统计使用场景数量示例位置底部导航栏5 个Index.ets TabBar快捷操作5 个⚙️HomePage.ets健康提醒5 个️✂️ReminderPage.ets健康分类5 个⚖️️HealthRecordPage.ets心情选择5 个WriteDiaryPage.ets活动统计3 个StatisticsPage.ets社区话题3 个CommunityPage.ets总计31 个—覆盖 10 页面1.2 Emoji 使用方式// 方式一Text 组件渲染 Emoji Text() .fontSize(24) .fontColor(#F5A623) // 方式二字符串中包含 Emoji Text(记录爱·陪伴成长) .fontSize(16) .fontColor(#F5A623) // 方式三数据模型中的 Emoji interface QuickAction { icon: string // , , , , ⚙️ label: string color: string }提示Emoji 在 ArkTS 中通过Text组件渲染本质上是 Unicode 字符。fontSize控制 Emoji 的显示大小fontColor控制颜色。绝大多数 Emoji 支持单色渲染但部分彩色 Emoji 不受fontColor影响。二、Emoji 作为 UI 图标的优势2.1 核心优势对比对比维度Emoji 图标图片图标矢量图标加载速度即时渲染需要 I/O 加载需解析路径分辨率适配自动适配无失真需准备多套尺寸矢量缩放开发成本零成本需设计师设计需图标库修改难度改一个字符重新切图重新导出主题适配可设置 fontColor需多套图片可设置 fill文件体积0 额外体积增加 APK 大小需引入库跨平台系统差异统一统一2.2 萌宠日记选择 Emoji 的原因开发效率无需设计师提供图标素材开发者直接使用 Emoji文件体积不增加 APK 体积加载速度快自适应自动适配不同屏幕分辨率无需多尺寸切图风格统一系统 Emoji 风格统一视觉一致性有保障情感表达Emoji 自带情感属性适合萌宠日记的温暖调性三、Emoji 的选择策略3.1 语义匹配功能模块选择 Emoji匹配理由首页 房子代表“首页“的通用符号日记 备忘录代表“书写“和“记录“记录 剪贴板代表“清单“和“记录“统计 条形图代表“数据“和“图表“我的 用户代表“个人“和“用户“3.2 选择原则语义明确Emoji 含义与功能匹配用户一看就懂普遍认知选择用户广泛理解的 Emoji避免生僻符号风格统一全部使用系统 Emoji保持视觉一致性尺寸适中导航栏字体 24fp图标区域 48×48vp四、Emoji 的样式控制4.1 字体大小与颜色// 控制 Emoji 的大小 Text() .fontSize(80) // 大尺寸用于闪屏页插画 Text() .fontSize(24) // 中等尺寸用于导航栏 Text() .fontSize(20) // 小尺寸用于列表图标 // 控制 Emoji 的颜色对单色 Emoji 有效 Text() .fontColor(#F5A623) // 橙色 .fontColor(#999999) // 灰色未选中态4.2 Emoji 颜色控制Emoji 类型颜色控制示例单色 EmojifontColor有效⚙️彩色 EmojifontColor无效保持原色肤色 EmojifontColor无效默认肤色五、Emoji 与文字的混合排版5.1 图标 文字组合// 导航栏图标在上文字在下 Builder TabBarBuilder(icon: string, label: string, index: number) { Column() { Text(icon).fontSize(24) // 图标 Text(label).fontSize(10) // 文字 .margin({ top: 2 }) } } // 列表项图标在左文字在右 Row({ space: 12 }) { Text(reminder.icon).fontSize(24) // 图标 Column({ space: 4 }) { Text(reminder.title).fontSize(14) // 标题 Text(reminder.date).fontSize(12) // 日期 } }5.2 文字中嵌入 Emoji// 品牌标语中嵌入 Emoji Text(记录爱·陪伴成长) .fontSize(16) .fontColor(#F5A623)六、无障碍适配6.1 Emoji 的无障碍问题// 屏幕朗读会读出 Emoji 的 Unicode 名称 // 例如 会被读作 房子 // 但部分 Emoji 的朗读效果可能不理想 // 解决方案添加 accessibilityText 覆盖 Text() .fontSize(24) .accessibilityText(首页) // 朗读 首页 而非 房子6.2 Emoji 无障碍对照表Emoji默认朗读无障碍文本原因“房子”“首页”功能名更清晰“备忘录”“日记”业务名更准确“用户”“我的”功能名更清晰⚙️“齿轮”“设置”功能名更清晰“绿色爱心”“健康”功能名更准确七、跨平台 Emoji 差异7.1 系统差异平台Emoji 风格特点HarmonyOS系统默认与 OpenHarmony 风格一致iOSApple 风格圆润、立体AndroidGoogle 风格扁平、卡通WindowsMicrosoft 风格简洁、扁平7.2 兼容性建议选择通用性高的 Emoji避免平台特有符号在文字标签辅助下使用 Emoji即使 Emoji 渲染有差异文字也能传达含义关键图标使用图片资源作为备选方案八、Emoji 的性能考量8.1 性能对比渲染方式性能开销说明Emoji极低系统字体渲染GPU 加速图片 PNG低解码 纹理上传矢量 SVG中路径解析 渲染自定义绘制高Canvas 绘制8.2 优化建议避免在同一个页面使用过多不同大小的 Emoji不要将 Emoji 作为动画元素需使用图片资源大尺寸 Emoji如 80fp在低端设备上可能有渲染延迟九、从 Emoji 迁移到图标库9.1 迁移时机时机原因迁移方案原型阶段快速验证使用 Emoji ✅MVP 版本快速上线使用 Emoji ✅正式版本品牌统一考虑图标库主题定制自定义颜色必须迁移9.2 图标库方案// 使用 SymbolGlyph 组件加载自定义图标 import { SymbolGlyph } from kit.ArkUI SymbolGlyph($r(sys.symbol.ohos_home)) .fontSize(24) .fontColor(#F5A623)十、最佳实践10.1 Emoji 使用原则有序列表 — Emoji 作为 UI 图标的 5 个原则优先选通用 Emoji选择用户广泛理解的 Emoji避免生僻符号配合文字标签Emoji 下方或旁边配合文字说明避免歧义控制尺寸导航栏 24fp列表图标 20-24fp大图 48-80fp测试无障碍为功能性的 Emoji 添加 accessibilityText规划迁移路径原型阶段用 Emoji 快速迭代正式版逐步迁移到图标库10.2 萌宠日记 Emoji 使用总结使用层级示例数量字号颜色控制导航栏524fp✅ 选中/未选中操作图标⚙️524fp❌ 保持原色列表图标️✂️524fp❌ 保持原色分类图标⚖️522fp❌ 保持原色心情图标528fp❌ 保持原色插画348-80fp❌ 保持原色总结本文从萌宠日记的Emoji 使用实践出发深入解析了 Emoji 作为 UI 图标的完整方法使用全景31 个 Emoji 覆盖 10 页面多种使用方式核心优势零成本、自适应、无额外体积、即时渲染选择策略语义匹配、普遍认知、风格统一样式控制fontSize 控制大小fontColor 控制颜色混合排版图标 文字组合文字中嵌入 Emoji无障碍适配accessibilityText 覆盖默认朗读跨平台差异不同平台 Emoji 风格不同迁移方案从 Emoji 到图标库的演进路径Emoji 作为 UI 图标的轻量级方案特别适合原型阶段和情感化设计场景但正式产品需要根据品牌需求权衡是否迁移到统一图标库。下一篇我们将深入空白占位与 Flex 布局解析 Blank 和 Flex 组件在布局中的应用。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源Text 组件参考https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-textSymbolGlyph 组件https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-basic-components-symbolglyph无障碍开发https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/accessibility-kit字体图标使用https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/icon-font颜色管理https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/color-usage字体排版https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/typographyUI 设计规范https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/design-overview无障碍设计指南https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/accessibility-approve-experience

相关新闻

对讲机定时自动重启、固定时段死机排查 香坊双工电子系统定时故障专项修复

对讲机定时自动重启、固定时段死机排查 香坊双工电子系统定时故障专项修复

哈尔滨不少单位的对讲机存在规律性疑难故障:设备每天固定时段自动重启、静置待机无故死机,白天使用正常、夜间挂机频繁重启,没有磕碰、没有进水、没有人为操作,故障却准时出现。很多维修无法查出问题,只能归结为“设备…

2026/10/18 4:11:45 阅读更多 →
TI Tiva微控制器EPI接口配置:通用模式与主机总线模式详解

TI Tiva微控制器EPI接口配置:通用模式与主机总线模式详解

1. 项目概述与EPI核心价值如果你正在用TI的Tiva™系列微控制器(比如TM4C129x)做项目,并且遇到了一个瓶颈——片上资源不够用,或者需要连接一个高速的外部设备,比如一块FPGA、一片大容量的SRAM,或者一个并行…

2026/10/18 4:11:47 阅读更多 →
TI VPDMA中断寄存器配置:从原理到实战的嵌入式视频处理优化

TI VPDMA中断寄存器配置:从原理到实战的嵌入式视频处理优化

1. 项目概述与核心价值在嵌入式视频处理系统的开发中,尤其是面对德州仪器(TI)这类高性能SoC平台,如何高效、稳定地处理海量视频数据流,是每个底层驱动工程师和系统架构师必须啃下的硬骨头。我接触过不少项目&#xff0…

2026/10/18 3:26:30 阅读更多 →

最新新闻

CSS凸起导航栏效果实现:从flex布局到伪元素细节优化

CSS凸起导航栏效果实现:从flex布局到伪元素细节优化

导航栏是每个前端页面都绕不开的基础组件,但基础不代表简单。前阵子做导航栏练习,专门试了一版“凸起导航栏效果”:当前激活项像一块小磁贴从工具栏底部鼓出来,和下方内容区连成同色整体。第一眼看上去挺高级,放到SaaS…

2026/10/18 8:40:19 阅读更多 →
Paper周报:构建可执行的学术信息流操作系统

Paper周报:构建可执行的学术信息流操作系统

1. 项目概述:这不是一份普通周报,而是一套可复用的学术信息流操作系统“Paper 周报 | 2026.10 #1”这个标题乍看像一份随手发在实验室群里的PDF附件,但在我过去十年帮某高校AI实验室、某医疗影像初创团队和某半导体设计公司搭建知识管理流程的…

2026/10/18 8:40:19 阅读更多 →
sqlite3跨平台静态库资源包:C++后端链接难题一包解决

sqlite3跨平台静态库资源包:C++后端链接难题一包解决

简介:面向C后端开发者的SQLite跨平台库文件包,覆盖Windows 64位/32位与Linux环境,解决不同系统下编译链接SQLite时缺少对应静态库、动态库及头文件的问题,适合快速搭建本地数据存储能力。包内共8个文件,包含3个.h头文件…

2026/10/18 8:40:19 阅读更多 →
持续集成工具Jenkins部署全流程:从安装到流水线实战

持续集成工具Jenkins部署全流程:从安装到流水线实战

我最早接触持续集成工具,就是因为被一次手动发版折磨到天亮。那次经历让我下定决心,必须把构建、测试、部署这套流程彻底自动化。而聊到持续集成工具,Jenkins 几乎是绕不开的名字。这篇文章我就结合自己部署 Jenkins 的完整过程,把…

2026/10/18 8:40:19 阅读更多 →
Arch Linux极简桌面:st终端与dwm窗口管理器深度配置指南

Arch Linux极简桌面:st终端与dwm窗口管理器深度配置指南

1. 项目概述:为什么一个极简终端窗口管理器组合值得花三天重装系统“Arch Linux 美化 (st dwm)”——这行标题在Linux桌面生态里,像一句暗号。它不谈图形界面、不提开箱即用,甚至刻意回避“桌面环境”这个词。但凡看到它的人,心里…

2026/10/18 8:40:19 阅读更多 →
Linux stress工具深度实践:从安装避坑到压测验证

Linux stress工具深度实践:从安装避坑到压测验证

简介:本资源为Linux系统管理员与运维开发人员必备的 stress 压力测试工具源码包,专用于CPU与内存极限负载场景下的稳定性验证与性能调优。资源完整包含1.0.1版本源码构建体系,共32个文件,涵盖configure配置脚本、Makefile系列构…

2026/10/18 8:39:19 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →