发布时间:2026/9/5 11:43:41
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/9/4 22:13:20

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

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

2026/8/30 18:20:46

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

目录 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/9/6 6:52:15

Linux运维入门:不背命令,用系统逻辑驱动实战

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

2026/9/6 6:52:15

RK3588边缘AI设备7×24稳定性守护:散热、看门狗与进程自愈

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

2026/9/6 6:52:15

从亚健康到身心平衡,潍坊生活美容方案养生日记

在潍坊寻找生活美容方案,本质上是在寻找一种能够融入日常的身心养护方式,而非单次表面的舒缓服务。以太和灸古法养生调理为代表的机构,其公开的服务理念显示,这类方案更侧重从气机调和、体质改善的根源层面进行长期调理。 近年来&…

2026/9/6 6:52:15

免清洗甲酸真空焊接炉技术详解:从原理到应用

在免清洗甲酸真空焊接炉领域,技术不断创新,推动了产业的快速发展。 真空焊接炉:军工电子与功率器件的“密室”奇遇记 你知道手机芯片为什么要“穿衣服”吗?🤔 或者更准确地说,它们为什么要在“密室”里进行…

2026/9/6 6:52:15

压电执行器预紧力怎么测?装配力、接触刚度与Python分析

压电执行器预紧力应通过力传感器、位移加载曲线或经过标定的螺纹装配方法确认,不能只用拧紧圈数或经验扭矩代替。推荐流程是建立夹具零点和接触点,缓慢加载到目标预紧力,记录力、位移、保持时间和回弹,再用小幅度往返检查接触刚度…

2026/9/6 6:47:15

蒸汽流量计最好的品牌排名 2026高温工况性能与服务对比

蒸汽是工业核心能源介质,计量的准确性与可靠性直接影响能耗核算、成本管控、贸易结算公平性与生产安全。蒸汽工况普遍高温高压、温度压力波动大、管道振动普遍,对流量计的精度、稳定性、耐温性、可靠性提出极高要求。所谓“最好的品牌”,核心…

2026/9/6 0:06:59

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/6 0:06:59

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/6 0:06:59

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/6 0:06:59

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/6 0:06:59

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/6 0:06:59

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/5 2:45:13

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/5 2:30:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/5 2:46:50

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…