HarmonyOS gif对应的ArkUI_DrawableDescriptor怎么创建

HarmonyOS
2025-01-09 15:49:32
905浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
fox280
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);
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
分享
微博
QQ
微信
回复
2025-01-09 19:15:45
相关问题
HarmonyOS 创建ArkUi-X项目报错
1675浏览 • 1回复 待解决
VectorElement怎么定义对应xml
9514浏览 • 2回复 待解决
ArkUI如何通过代码动态创建组件
3439浏览 • 1回复 待解决
如何渲染gif类型文件
7710浏览 • 1回复 待解决
HarmonyOS如何实现gif图片控制
849浏览 • 1回复 待解决
harmonyOS 蓝牙怎么创建
6527浏览 • 1回复 待解决
HarmonyOS json怎么动态获取键值对应
659浏览 • 1回复 待解决
HarmonyOS 关于GIF图片播放功能咨询
637浏览 • 1回复 待解决
HarmonyOS Image显示GIF图片时控制
870浏览 • 1回复 待解决
HarmonyOS 全局样式怎么创建
1046浏览 • 1回复 待解决
arkui怎么展示接口返回富文本?
3661浏览 • 1回复 待解决
ArkUI(ets)怎么实现右边框?
4461浏览 • 1回复 待解决