HarmonyOS如何使用Resource ID加载颜色资源?

How to load color resource using Resource ID in HarmonyOS?

我正在构建 HarmonyOS 应用程序并想加载我放在 resources/base/element/color.json 的资源文件夹中的颜色值。如何在我的 Java class 中加载这种颜色?

在 Android 中我们可以使用 getColor() 函数:

context.getResources().getColor(R.color.colorID);

HarmonyOS 中有什么替代方案?

您可以参考以下实现:

  1. color.json
{

  "color": [

    {

      "name": "primary",

      "value": "#FF0000"

    }

  ]

}

  1. MainAbilitySlice
    public void onStart(Intent intent) {

        super.onStart(intent);

        super.setUIContent(ResourceTable.Layout_ability_main);



        ResourceManager resManager = this.getResourceManager();

        try {

            int color = resManager.getElement(ResourceTable.Color_primary).getColor();

            Text text = (Text) findComponentById(ResourceTable.Id_text_helloworld);

            text.setTextColor(new Color(color));

        } catch (IOException e) {



        } catch (NotExistException e) {



        } catch (WrongTypeException e) {



        }

    }