Canvas中深色/浅色主题切换

深色/浅色主题切换,已经创建了dark文件夹,创建了color.json文件,但是使用Canvas时遇到了问题。this.context.fillStyle 的类型为string | number | CanvasGradient | CanvasPattern。$r(‘app.color.canvas_body’)的类型位Resource,不能直接使用。

使用getContext().resourceManager.getColorSync($r(‘app.color.canvas_body’))获取颜色,因为是异步的,打印需要耗时8毫秒,在自定义View的过程中会引发掉帧。

所以this.context.fillStyle 的类型应该怎么处理?

HarmonyOS
2024-09-30 09:58:20
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

推荐使用资源Id作为参数获取颜色。

import { BusinessError } from '@ohos.base';  
  
try {  
  this.context.resourceManager.getColorSync($r('app.color.test').id);  
} catch (error) {  
  let code = (error as BusinessError).code;  
  let message = (error as BusinessError).message;  
  console.error(`getColorSync failed, error code: ${code}, message: ${message}.`);  
}

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-resource-manager-0000001815087730-V5#ZH-CN_TOPIC_0000001815087730__getcolorsync10

分享
微博
QQ
微信
回复
2024-09-30 17:57:33
相关问题
HarmonyOS 浅色深色主题如何设置
412浏览 • 1回复 待解决
app适配深色浅色切换模式
1887浏览 • 1回复 待解决
HarmonyOS深色主题适配
403浏览 • 1回复 待解决
如何在HarmonyOS实现动态主题切换
143浏览 • 0回复 待解决
如何支持全局主题切换
817浏览 • 1回复 待解决
应用内黑白主题切换
339浏览 • 1回复 待解决
HarmonyOS 组件切换深色模式不生效
387浏览 • 1回复 待解决
关于切换深色模式应用自动重启应用
6451浏览 • 2回复 待解决
HarmonyOS 应用多主题实现方案
363浏览 • 1回复 待解决
harmonyOs 怎么统一配置主题
9473浏览 • 1回复 待解决