HarmonyOS 鸿蒙Next怎么在代码里面获取颜色资源的值

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next怎么在代码里面获取颜色资源的值

我有一个颜色资源在color.json里面

在代码里面使用

resourceManager.getColorByNameSync(‘app.color.page_background’)

会报错 9001003

本意是想获取到"#101118" 这个字符串

我知道在组件设置属性的时候,可以直接使用$r(‘app.color.xxx’),但是我不是想要这种方式

请问该怎么写?

6 回复
把json文件转map,根据key取
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。

回到顶部