MiniX自绘渲染跨平台框架
  • 框架说明
  • 声明式开发范式
  • 内置Api
指南
接口
  • Minix CLI
示例
  • 类Web框架

    • 框架说明
    • 类Web开发范式
    • 内置Api
  • 指南
  • 组件
  • 接口
  • 示例
  • 规范
  • DophinHybrid

    • 快速上手 (opens new window)
    • UI 组件库 (opens new window)
    • jsBridge 接口 (opens new window)
  • DolphinWeex

    • 快速上手 (opens new window)
    • UI 组件库 (opens new window)
    • jsBridge 接口 (opens new window)
  • 发布消息
  • 常见问题
  • 更新日志
  • 框架说明
  • 声明式开发范式
  • 内置Api
指南
接口
  • Minix CLI
示例
  • 类Web框架

    • 框架说明
    • 类Web开发范式
    • 内置Api
  • 指南
  • 组件
  • 接口
  • 示例
  • 规范
  • DophinHybrid

    • 快速上手 (opens new window)
    • UI 组件库 (opens new window)
    • jsBridge 接口 (opens new window)
  • DolphinWeex

    • 快速上手 (opens new window)
    • UI 组件库 (opens new window)
    • jsBridge 接口 (opens new window)
  • 发布消息
  • 常见问题
  • 更新日志
  • 组件通用信息

  • 基础组件

    • Blank
    • Button
    • Checkbox
    • CheckboxGroup
    • DataPanel
    • DatePicker
    • Divider
    • Gauge
    • Image
    • ImageAnimator
    • LoadingProgress
    • Marquee
    • Navigation
    • Progress
    • QRCode
    • Radio
    • Rating
    • RichText
    • ScrollBar
    • Search
    • Select
    • Slider
    • Span
    • Stepper
    • StepperItem
    • Text
    • TextArea
    • TextClock
    • TextInput
    • TextPicker
    • TextTimer
    • TimePicker
    • Toggle
    • Web
    • XComponent
      • 权限列表
      • 子组件
      • 接口
      • 事件
      • XComponentController
      • 示例
  • 容器组件

  • 媒体组件

  • 绘制组件

  • 画布组件

  • 动画

  • 全局 UI 方法

  • 文档中涉及到的内置枚举值
  • 类型定义

# XComponent

说明:

该组件从API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

可用于EGL/OpenGLES和媒体数据写入,并显示在XComponent组件。

# 权限列表

无

# 子组件

不支持。

# 接口

XComponent(value: {id: string, type: string, libraryname?: string, controller?: XComponentController})

参数:

参数名 参数类型 必填 描述
id string 是 组件的唯一标识,支持最大的字符串长度128。
type string 是 用于指定XComponent组件类型,可选值为:
-surface:组件内容单独送显,直接合成到屏幕。
-component:组件内容与其他组件合成后统一送显。
libraryname string 否 应用Native层编译输出动态库名称。
controller XComponentcontroller 否 给组件绑定一个控制器,通过控制器调用组件方法。

# 事件

# onLoad

onLoad(callback: (event?: object) => void )

插件加载完成时回调事件。

参数:

参数名 参数类型 必填 描述
event object 否 获取XComponent实例对象的context,context上挂载的方法由开发者在c++层定义。

# onDestroy

onDestroy(event: () => void )

插件卸载完成时回调事件。

# XComponentController

xcomponent 组件的控制器,可以将此对象绑定至XComponent组件,然后通过控制器来调用组件方法。

# 创建对象

xcomponentController: XComponentController = new XComponentController()
1

# getXComponentSurfaceId

getXComponentSurfaceId()

获取XComponent对应Surface的ID,供@ohos接口使用,比如camera相关接口。

系统接口: 此接口为系统接口。

返回值:

类型 描述
string XComponent持有Surface的ID。

# setXComponentSurfaceSize

setXComponentSurfaceSize(value: {surfaceWidth: number, surfaceHeight: number})

设置XComponent持有Surface的宽度和高度。

系统接口: 此接口为系统接口。

参数:

参数名 参数类型 必填 描述
surfaceWidth number 是 XComponent持有Surface的宽度。
surfaceHeight number 是 XComponent持有Surface的高度。

# getXComponentContext

getXComponentContext()

获取XComponent实例对象的context。

返回值:

类型 描述
Object 获取XComponent实例对象的context,context包含的具体接口方法由开发者自定义。

# 示例

提供surface类型XComponent,支持相机预览等能力。
示例效果请以真机运行为准,当前IDE预览器不支持。

// xxx.ets
import camera from '@ohos.multimedia.camera';
@Entry
@Component
struct PreviewArea {
  private surfaceId : string =''
  xcomponentController: XComponentController = new XComponentController()
  build() {
    Row() {
      XComponent({
        id: 'xcomponent',
        type: 'surface',
        controller: this.xcomponentController
      })
        .onLoad(() => {
          this.xcomponentController.setXComponentSurfaceSize({surfaceWidth:1920,surfaceHeight:1080});
          this.surfaceId = this.xcomponentController.getXComponentSurfaceId();
          camera.createPreviewOutput(this.surfaceId).then((previewOutput) => {
            console.log('Promise returned with the PreviewOutput instance');
          })
        })
        .width('640px')
        .height('480px')
    }
    .backgroundColor(Color.Black)
    .position({x: 0, y: 48})
  }
}
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