HarmonyOS应用开发实战:萌宠日记 - 图标与 Emoji 在 UI 中的应用

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