HarmonyOS ArkUI C API如何给IMAGE组件设置位图图像

ArkUI C API如何给IMAGE组件设置位图图像

HarmonyOS
2024-12-20 17:03:34
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

参考demo:

if (nodeAPI->createNode != nullptr && nodeAPI->addChild != nullptr) {

  ArkUI_NodeHandle imageNode = nodeAPI->createNode(ARKUI_NODE_IMAGE);
  uint8_t data[96];
  for (auto i = 0; i < 92; i++) {
    data[i] = uint8_t(0);
    data[i + 1] = uint8_t(0);
    data[i + 2] = uint8_t(0);
    data[i + 3] = uint8_t(255);
    i = i + 4;
  }
  OH_Pixelmap_InitializationOptions *options = nullptr;
  OH_PixelmapInitializationOptions_Create(&options);
  OH_PixelmapInitializationOptions_SetWidth(options, 4);
  OH_PixelmapInitializationOptions_SetHeight(options, 6);
  OH_PixelmapInitializationOptions_SetPixelFormat(options, 4);
  OH_PixelmapInitializationOptions_SetAlphaType(options, 0);

  OH_PixelmapNative *g_PixelMap = nullptr;
  OH_PixelmapNative_CreatePixelmap(data, 96, options, &g_PixelMap);
  ArkUI_DrawableDescriptor *drawable = nullptr;
  drawable = OH_ArkUI_DrawableDescriptor_CreateFromPixelMap(g_PixelMap);
  ArkUI_AttributeItem img_src_item = {.object = drawable};
  nodeAPI->setAttribute(imageNode, NODE_IMAGE_SRC, &img_src_item);
  ArkUI_NumberValue value[1] = {{.f32 = 300}};
ArkUI_AttributeItem item = {value, 1};
nodeAPI->setAttribute(imageNode, NODE_HEIGHT, &item);
nodeAPI->setAttribute(imageNode, NODE_WIDTH, &item);
OH_NativeXComponent_AttachNativeRootNode(component, imageNode);
}
分享
微博
QQ
微信
回复
2024-12-20 18:53:09
相关问题
HarmonyOS image 组件位图
886浏览 • 1回复 待解决
HarmonyOS 如何image设置遮罩 ?
903浏览 • 1回复 待解决
HarmonyOS如何使用Image位图
911浏览 • 1回复 待解决
HarmonyOS ArkUI C-API有文档吗?
974浏览 • 1回复 待解决
如何Image组件动态更改图片?
1161浏览 • 1回复 待解决
HarmonyOS api10如何子窗口设置圆角
997浏览 • 1回复 待解决
ArkUI C 如何使用ArkUI_StyledString
713浏览 • 1回复 待解决
HarmonyOS Image组件如何设置填充颜色
729浏览 • 1回复 待解决
Image组件如何设置默认图?
1571浏览 • 1回复 待解决
HarmonyOS Image Kit 网络图像的加载
876浏览 • 1回复 待解决
怎么组件设置下边框?
7374浏览 • 1回复 待解决
ArkUI如何设置组件的悬停状态?
2196浏览 • 1回复 待解决