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 中有什么替代方案?
您可以参考以下实现:
- color.json
{
"color": [
{
"name": "primary",
"value": "#FF0000"
}
]
}
- 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) {
}
}
我正在构建 HarmonyOS 应用程序并想加载我放在 resources/base/element/color.json
的资源文件夹中的颜色值。如何在我的 Java class 中加载这种颜色?
在 Android 中我们可以使用 getColor()
函数:
context.getResources().getColor(R.color.colorID);
HarmonyOS 中有什么替代方案?
您可以参考以下实现:
- color.json
{
"color": [
{
"name": "primary",
"value": "#FF0000"
}
]
}
- 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) {
}
}