文章导读

  • 一个看起来完整的应用,背后往往不是“图片够多”,而是资源职责划分足够清楚。
  • Tab 图标、操作图标、头像、赛事 logo、Banner 和封面图,在工程里本来就该走不同策略。
  • 技术文章封面也不该直接挪用商店宣传图,它服务的是系列阅读,而不是营销转化。

页面效果

资源管理最怕“一把梭”。如果把 Tab 图标、页面操作图标、头像和赛事 logo 全都按同一种思路处理,界面很快就会失去层次。功能图标应该干净、可染色、适合跟随主题切换;内容位图应该优先保证清晰度和辨识度;封面则要保证整个系列的统一编号和版式语言。

首页资源与图标效果

羽球联盟首页很适合讲这个问题。底部 Tab 图标要跟随选中态切换主色,顶部搜索图标要和当前页面文字风格一致,Banner 和头像又必须保留图片本身的信息量。如果类型混用,用户第一眼看到的不是“这套应用挺完整”,而是“图都堆在一起了”。

实战拆解

这个项目对资源的划分是比较务实的。Tab、返回、搜索、收藏、设置这一类操作型图标,优先走可染色资源。它们在页面里的主要任务不是“展示纹理”,而是提供一个能随选中态、深浅色一起变化的稳定轮廓。比如底部导航栏会根据当前选中页切换 fillColor,如果这类图标做成难以控制色值的位图,维护成本会立刻上来。

头像、装备图、赛事 logo、Banner 这类资源则完全不同。它们承担的是信息展示功能,用户会看颜色、人物、球拍形态和赛事标识,这类内容更适合稳定的位图资源。换句话说,可染色图标解决交互一致性,位图资源解决内容表达力,两者不应该混成一类。

技术封面是第三种资源。它既不是页面图标,也不是应用宣传海报,而是系列阅读系统的一部分。羽球联盟这一组封面统一为 1200×675,左侧保留半透明信息面板,中间是编号胶囊和主题标题,底部统一落“ArkTS · ArkUI · 实战源码复盘”。这样的设计有一个明显好处:读者在目录页一眼就能识别“这是同一系列里的第几篇”,而不是被每篇完全不同的封面风格打断。

批量生成也比手工一张张改靠谱得多。背景、编号、标题行宽、字体和边距都由脚本统一控制,后续只要改一处规则,就能整体更新全部封面,不会出现第 18 篇和第 19 篇字号不一致、编号错位这种低级问题。

关键代码

@Builder
tabBuilder(idx: number, title: string, icon: Resource) {
  Column() {
    Image(icon)
      .width(24).height(24)
      .fillColor(this.currentIndex === idx ? AppColors.primary : AppColors.textTertiary)
    Text(title)
      .fontSize(AppSizes.f10)
      .fontColor(this.currentIndex === idx ? AppColors.primary : AppColors.textTertiary)
      .margin({ top: 2 })
  }
  .alignItems(HorizontalAlign.Center)
  .justifyContent(FlexAlign.Center)
  .width('100%')
  .height(AppSizes.tabBarHeight)
}

这段代码先把交互图标的职责说明白了。底部导航图标不是静态装饰,而是会跟随当前索引切换颜色的 UI 元件,所以它天然适合走可染色资源。封面批量脚本则解决另一件事:统一编号、标题和边距,让文章封面形成稳定系列感。两者放在一起看,更能说明“资源系统”不是简单的图片堆放,而是交互资源和阅读资源的双重组织。

设计落点

  • 交互图标和内容位图必须分开对待,它们服务的目标根本不同。
  • 资源系统要为主题切换和模块复用服务,而不是只满足“当前页能显示”。
  • 技术封面要强调系列一致性,重点是编号、层级和可识别度,不是营销感。

易踩坑

  • 不要把所有图都当位图处理,很多操作型图标天然更适合可染色资源。
  • 不要为了省事直接复用商店宣传图当技术封面,两种场景的视觉目标并不一样。
  • 不要手工逐张维护系列封面,篇数一多,编号、标题和边距迟早会错位。
  • 资源命名一旦失控,后续替换头像、logo 或 Tab 图标时会非常痛苦。

验证方式

  • 打开首页、赛事页和个人中心,确认图标、Banner、头像和 logo 都能被正确解析显示。
  • 在底部导航切换不同 Tab,确认图标和标题颜色会跟随选中态同步变化。
  • 切换深浅色模式后抽查操作型图标,确认色值没有出现发灰、丢失或不可见。
  • 抽查多张系列封面,确认编号、标题层级和底部信息保持统一。

参考资料

小结

第 18 篇想说的其实很简单:资源管理不是收尾工作,而是产品稳定感的一部分。交互图标负责一致性,内容位图负责信息表达,技术封面负责系列识别。三者各守其位,页面质感、文章连贯性和后续维护效率才会一起上来。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐