HarmonyOS APP应用主题切换

打印 上一主题 下一主题

主题 987|帖子 987|积分 2963

介绍

本示例展示多种应用主题切换。通过创建 base 同级资源文件夹 dark 和 light 完成深色浅色主题相关资源设置,实现深色浅色主题切换,在 ThemeConst 文件中设置自定义主题文件,通过控制变量实现多主题切换。
通过@ohos.application.abilityManager 本领,对Ability状态进行修改:其中AbilityManager.updateConfiguration()通过修改colorMode属性来更新设置系统主题颜色。
效果预览


利用说明:

  • 点击头部切换主题按钮,选择想要切换的主题。
  • 系统深浅模式切换,应用主题主动跟随切换深浅模式。
工程目录

  1. entry/src/main/ets/
  2. |---models
  3. |   |---ThemeConst.ets                  // 统一放置更换的主题资源
  4. |---utils
  5. |   |---ThemeGet.ets                    // 根据全局变量theme来控制主题模式
  6. |---pages
  7. |   |---Components
  8. |        |---TitleBar.ets               // 头部导航栏,主题切换的控制
  9. |   |---Index.ets                       // 首页
  10. entry/src/main/resources/
  11. |---base                                // 默认资源库
  12. |   |---element                         // 字体相关资源
  13. |   |---media                           // 图片资源
  14. |   |---profile                        
  15. |---dark                                // 黑夜模式资源
  16. |   |---element                        
  17. |   |---media                           
  18. |---light                               // 白天模式资源
  19. |   |---element                        
  20. |   |---media                           
复制代码
详细实现



  • 三种模式资源同一放在ThemeConst内,在ThemeGet中定义全局变量theme控制主题模式(0:黑夜 1:白天 3:自定义主题),源码参考Index.ets ,步骤如下,

    • 1)整理主题资源:例如创建系统主题dark,light和自定义主题custom相关目录,并完善需要切换的资源比如icon、color等,系统主题下的雷同资源,资源名称必须雷同,比如dark下title.icon和light下title.icon
    • 2)定义资源池函数引用需要切换的主题资源,需要主题切换的资源通过getTheme(this.theme).资源名,实现组件对资源的动态引用和动态渲染。
    • 3)定义全局变量@storagelink(‘theme’)
    • 4)定义事件修改变量theme的值,如果是系统主题(dark,light),调用AbilityManager.updateConfiguration(),通过修改colorMode属性来更新设置系统主题颜色(0:深夜 1:白天)
    • 5)自定义主题无须修改系统设置,只需修改theme全局变量的值,全局变量会通过@storagelink双向绑定机制,主动重新渲染绑定了theme值的组件

相关权限

允许更新系统设置:ohos.permission.UPDATE_CONFIGURATION
依赖

不涉及。
束缚与限制


  • 本示例仅支持尺度系统上运行,支持设备:RK3568。
  • 本示例已适配 API version 9 版本 SDK,本示例涉及利用系统接口:@ohos.application.abilityManager,需要手动替换 Full SDK 才气编译通过,详细操作可以参考替换指南 。
  • 本示例需要利用 DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)及以上版本才可编译运行。
  • 本示例所设置的权限 ohos.permission.UPDATE_CONFIGURATION 为 system_basic 级别(相关权限级别可通过权限定义列表 检察),需要手动设置对应级别的权限签名(详细操作可检察主动化签名方案)
下载

如需单独下载本工程,执行如下下令:
  1. git init
  2. git config core.sparsecheckout true
  3. echo code/Project/ApplicationHap/ApplicationThemeSwitch/ > .git/info/sparse-checkout
  4. git remote add origin https://gitee.com/openharmony/applications_app_samples.git
  5. git pull origin master
复制代码
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),盼望对大家有所资助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05


  • 根本概念
  • 构建第一个ArkTS应用
  • ……

开发底子知识:https://qr21.cn/FV7h05


  • 应用底子知识
  • 设置文件
  • 应用数据管理
  • 应用安全管理
  • 应用隐私保护
  • 三方应用调用管控机制
  • 资源分类与访问
  • 学习ArkTS语言
  • ……

基于ArkTS 开发:https://qr21.cn/FV7h05


  • Ability开发
  • UI开发
  • 公共事件与通知
  • 窗口管理
  • 媒体
  • 安全
  • 网络与链接
  • 电话服务
  • 数据管理
  • 后台使命(Background Task)管理
  • 设备管理
  • 设备利用信息统计
  • DFX
  • 国际化开发
  • 折叠屏系列
  • ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH


鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表