我正在使用 Java SDK 在 HarmonyOS 中创建一个自定义组件,我需要一个属性来获取元素(即 VectorElement 或 png 格式图标)作为来自 xml 布局文件的输入。
例如:
ohos:sliderIcon="$graphic:custom_icon" (VectorElement)
ohos:sliderIcon="$media:ic_arrow" (PNG format icon)
现在我正在像这样的自定义组件类中获取元素
Element sliderIcon = attrSet.getAttr(Attribute.SLIDER_ICON).isPresent()
? attrSet.getAttr(Attribute.SLIDER_ICON).get().getElement()
: new VectorElement(getContext(), ResourceTable.Graphic_slidetoact_ic_arrow);
但是,上面的代码仅适用于 VectorElement 图标,不适用于 PNG 格式的图标。
我可以在运行时从 java 代码设置 VectorElement 和 PNG 格式图标,如下所示:
对于向量元素:
Element sliderIcon = new VectorElement(getContext(), ResourceTable.Graphic_custom_icon);
对于 PNG 格式的图标:
//You can set png format icon using PixelMapElement.
try {
Element sliderIcon = new PixelMapElement(getResourceManager().getResource(ResourceTable.Media_ic_arrow));
} catch (IOException | NotExistException e) {
e.printStackTrace();
}
所以我的问题是
如何在自定义组件中获取 PNG 格式图标作为属性?
或者
如何获取已传递元素的资源/参考 id?