发布时间:2026/7/22 16:39:51
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/7/22 16:39:51

doris异步物化视图查询paimon的线程泄露问题

【背景】业务需求是通过doris异步物化视图,定时查询paimon的数据进行结果更新,加速报表查询速度。【版本】doris 3.1.4 paimon 1.4.1 【问题】doris子线程持续增长,导致内存同步增长,最终宕机【复现步骤】1、创建paimon catalogCR…

2026/7/22 16:34:51

校园旧书共享交易平台的设计与实现

目录 1 绪论 1.1 研究背景及意义 1.2 国内外研究现状及发展趋势 1.3 主要工作 2相关技术介绍 2.1 Java技术 2.2 B/S架构 2.3 MySQL数据库 2.4 MySQL环境配置 2.5 SpringBoot框架 3需求分析 3.1系统功能分析 3.2可行性分析 3.2.1经济可行性分析 3.…

2026/7/22 17:44:59

pyFDA与Amaranth结合:FPGA滤波器设计与实现

pyFDA与Amaranth结合:FPGA滤波器设计与实现 【免费下载链接】pyfda Python Filter Design Analysis Tool 项目地址: https://gitcode.com/gh_mirrors/py/pyfda pyFDA(Python Filter Design Analysis Tool)是一款强大的滤波器设计与分析…

2026/7/22 17:44:59

测试面试避坑指南:这10个高频问题答对了,薪资至少涨30%

关注 「软件测试就业联盟」公众号,陪你走好校招求职的每一步最近半年,你周围有没有人面试聊得挺好,最后薪资却卡在某个数字再也谈不上去?甚至不少人反馈,明明问题都答上来了,面试官就是不给过。原因其实很扎…

2026/7/22 17:44:59

卷积稀疏编码

参考视频:【图像稀疏表示 (4-2)】 https://www.bilibili.com/video/BV1qq4y1Z76F/?share_sourcecopy_web&vd_sourcec0697661320dab63e5710ea1fb58458f一. 稀疏表示可以用元素周期表类比字典D,一个物质类比图像X,从…

2026/7/22 9:29:13

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/22 0:02:17

抓包代理链路下的 TLS 指纹变化分析 TLSFOWARD抓包工具

抓包代理链路下的 TLS 指纹变化分析:为什么调试环境会影响访问结果 摘要 在网页调试、接口联调、自动化巡检和授权采集排查中,抓包是常见手段。但很多开发者会遇到一个现象:正常访问页面时没有问题,一进入抓包或代理调试环境&…

2026/7/22 0:02:17

微信QQ聊天记录误删恢复与备份方案全指南

1. 聊天记录误删的常见场景与恢复思路作为一名长期关注数据安全的技术博主,我处理过上百起聊天记录误删的求助案例。手机误操作、系统升级失败、设备损坏是三大常见诱因。上周就遇到用户更新微信时断电,导致近两年的工作群聊记录全部消失的极端案例。不同…

2026/7/22 0:02:17

2026最新8款个人AI编程免费工具深度实测

作为一名全栈独立开发者,我最近半年一直在折腾副业项目,每个月在AI编程工具上的订阅费算下来其实也不算便宜。作为个人开发者,我们追求的就是用最少的成本获得最高效的开发体验。TRAE 基础版免费,字节跳动出品的国内首款 AI 原生 …

2026/7/21 20:02:44

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…