鸿蒙5官方图标资源使用指南(附免费用法)
摘要: HarmonyOS5提供丰富的图标资源,包括系统图标、应用图标、装饰图标和主题图标,可通过DevEco Studio或官网获取。开发者可调用SymbolGlyph或SymbolSpan使用系统图标,并通过Image加载自定义图标,支持多分辨率适配。高级功能包括动态主题适配和Lottie动画图标实现。使用规范要求不得修改官方图标核心设计,商业应用需注明来源,同时建议优化格式与布局。注意图标点
·
一、图标资源分类与获取
HarmonyOS 5 提供四大类图标资源:
- 系统图标:包含箭头、开关、按钮等基础控件图标(如
ic_public_back) - 应用图标:应用启动图标与功能图标(尺寸含48x48/96x96等)
- 装饰图标:用于空状态、提示信息的插画型图标
- 主题图标:适配深浅模式的动态图标
获取途径:
- 通过DevEco Studio内置资源管理器直接调用
- 从HarmonyOS Design官网下载完整图标包
- 使用
$r('sys.symbol.xxx')直接访问系统内置图标
二、基础图标使用示例
1. 系统图标调用
// 使用SymbolGlyph显示返回图标
SymbolGlyph($r('sys.symbol.ic_public_back'))
.size({ width: 24, height: 24 })
.margin(10)
// 带文本的复合图标(SymbolSpan)
TextSpan({
content: '设置 ',
font: { size: 16 }
}).append(
SymbolSpan($r('sys.symbol.ic_public_settings'))
.size(20)
)
2. 应用自定义图标
// 调用项目内media目录的图标
Image($r('app.media.home_icon'))
.width(48)
.height(48)
// 多分辨率自动适配(hdpi/xhdpi目录)
Image($r('app.media.user_avatar'))
.objectFit(ImageFit.Contain)
三、高级功能实现
1. 动态主题适配
@State isDarkMode: boolean = false
build() {
Image(this.isDarkMode ?
$r('app.media.logo_dark') :
$r('app.media.logo_light'))
.width(120)
}
2. 动画图标实现
// 加载Lottie动画图标
Animator({
duration: 1000,
curve: Curve.EaseInOut
})
.state(this.animateState)
Lottie({
src: $rawfile('loading.json')
})
.width(80)
.height(80)
四、免费使用规范与技巧
-
合规要求:
- 禁止修改官方图标核心设计(允许调整颜色/尺寸)
- 商业应用需在关于页面注明"HarmonyOS Design"字样
-
优化实践:
- 优先使用WebP格式节省资源空间
- 通过
media://协议访问系统图标库 - 使用
SymbolSpan实现图文混排时保持基线对齐
-
设计协同:
- 使用Sketch/Figma插件导出标准尺寸图标
- 通过
resources/base/media管理多分辨率资源
五、开发注意事项
- 图标点击区域需≥48x48像素(无障碍要求)
- 深色背景使用
#FFFFFF与#E6E6E6两种白色阶梯 - 多语言场景需测试阿拉伯文等从右至左布局
- 调用系统图标时需声明
ohos.permission.SYMBOLICATE权限
更多推荐



所有评论(0)