HarmonyOS 鸿蒙Next怎么在代码里面获取颜色资源的值
HarmonyOS 鸿蒙Next怎么在代码里面获取颜色资源的值
我有一个颜色资源在color.json里面
在代码里面使用
resourceManager.getColorByNameSync(‘app.color.page_background’)
会报错 9001003
本意是想获取到"#101118" 这个字符串
我知道在组件设置属性的时候,可以直接使用$r(‘app.color.xxx’),但是我不是想要这种方式
请问该怎么写?
6 回复
export async function getColor(name: string) {
const num = await getContext().resourceManager.getColorByName(name)
return `#${num.toString(16)}`
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
name 为 color.json 的 name
HarmonyOS的分布式文件系统让我在多设备间共享文件变得更加方便。
系统的颜色资源怎么获取
还要用
$r("app.color.xxxx")
在HarmonyOS(鸿蒙)开发中,获取颜色资源(Color Resource)的值通常是通过资源ID来完成的。你需要在res/values/colors.xml
文件中定义颜色资源,然后在代码中通过ResourceTable.Color_xxx
(其中xxx
是你定义的颜色资源ID)来获取这个颜色的值。例如,如果你有一个颜色资源ID为color_primary
,你可以在Java或Kotlin代码中这样使用:
int colorValue = context.getResources().getColor(ResourceTable.Color_color_primary);
或者,对于较新的API,使用ColorCompat
可能更兼容:
int colorValue = ContextCompat.getColor(context, ResourceTable.Color_color_primary);
如果问题依旧没法解决请加我微信,我的微信是itying888。