HarmonyOS 有没有单指旋转的api

业务中,需要用到单指旋转,还有双指缩放、拖拽等手势操作,但是用了文档这些开放的api跟自己自定义的onTouch会有冲突行为。

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

参考“旋转手势(RotationGesture)”:RotationGesture(value?:{fingers?:number; angle?:number})

旋转手势用于触发旋转手势事件,拥有两个可选参数:fingers:用于声明触发旋转手势所需要的最少手指数量,最小值为2,最大值为5,默认值为2。angle:用于声明触发旋转手势的最小改变度数,单位为deg,默认值为1。以在Text组件上绑定旋转手势实现组件的旋转为例,可以通过在旋转手势的回调函数中获取旋转角度,从而实现组件的旋转:

// xxx.ets
@Entry
@Component
struct Index {
  @State angle: number = 0;
  @State rotateValue: number = 0;

  build() {
    Column() {
      Text('RotationGesture angle:' + this.angle).fontSize(28)
        // 在组件上绑定旋转布局,可以通过修改旋转角度来实现组件的旋转
        .rotate({ angle: this.angle })
        .gesture(
          RotationGesture()
            .onActionStart((event: GestureEvent|undefined) => {
              console.info('RotationGesture is onActionStart');
            })
              // 当旋转手势生效时,通过旋转手势的回调函数获取旋转角度,从而修改组件的旋转角度
            .onActionUpdate((event: GestureEvent|undefined) => {
              if(event){
                this.angle = this.rotateValue + event.angle;
              }
              console.info('RotationGesture is onActionEnd');
            })
              // 当旋转结束抬手时,固定组件在旋转结束时的角度
            .onActionEnd(() => {
              this.rotateValue = this.angle;
              console.info('RotationGesture is onActionEnd');
            })
            .onActionCancel(() => {
              console.info('RotationGesture is onActionCancel');
            })
        )
        .height(200)
        .width(300)
        .padding(20)
        .border({ width: 3 })
        .margin(100)
    }
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 有没有单指旋转api
188浏览 • 0回复 待解决
HarmonyOS 有没有图片取色API
219浏览 • 1回复 待解决
有没有获取设备api
351浏览 • 1回复 待解决
有没有获取当前网速api?
4474浏览 • 1回复 待解决
请问API有没有录屏功能
9018浏览 • 1回复 待解决
Harmony OS有没有类似KeyChainapi提供
525浏览 • 1回复 待解决
SDK:API Version 3有没有visibility属性
6010浏览 • 1回复 待解决
有没有相关api?
4232浏览 • 1回复 待解决
有没有api可以杀掉当前进程
1585浏览 • 1回复 待解决