Column() {
XComponent({
id
:
'componentId'
,
type
:
'surface'
,
controller: this.mXComponentController
})
.onLoad(async ()
=
> {
hilog.info(
0x0001
, TAG,
'onLoad is called'
);
/
/
获取XComponent组件的surfaceId
this.surfaceId
=
this.mXComponentController.getXComponentSurfaceId();
hilog.info(
0x0001
, TAG,
'surfaceId: %{public}s'
, this.surfaceId)
let viewControl: customScan.ViewControl
=
{
width: this.cameraWidth,
height: this.cameraHeight,
surfaceId: this.surfaceId
};
/
/
扫码结果放置到回调中处理
try
{
customScan.start(viewControl, this.callback);
this.isFlashLightEnable
=
true;
} catch (error) {
hilog.error(
0x0001
, TAG,
'start fail, error: %{public}s'
, JSON.stringify(error));
}
})
/
/
XComponent宽、高、位置偏移量默认使用单位:vp
.width(this.cameraWidth)
.height(this.cameraHeight)
.position({ x: this.cameraOffsetX, y: this.cameraOffsetY })
}
.height(
'100%'
)
.width(
'100%'
)
.onAreaChange((oldValue: Area, newValue: Area)
=
> {
/
/
获取当前组件宽高,newValue返回width、height值,单位vp,计算XComponent组件大小
hilog.info(
0x0001
, TAG,
'newValue : %{public}s, '
, JSON.stringify(newValue));
this.calcArea(newValue.width as number, newValue.height as number);
})