HarmonyOS escucha eventos deslizantes hacia la izquierda, derecha, arriba, abajo y el significado del valor de retorno

     btn2.setTouchEventListener(new Component.TouchEventListener() {
            @Override
            public boolean onTouchEvent(Component component, TouchEvent touchEvent) {
                //参数1 代表手指的索引 单手指传递0就好了
                MmiPoint pointerPosition = touchEvent.getPointerPosition(0);
                float x = pointerPosition.getX();
                float y = pointerPosition.getY();
                int action = touchEvent.getAction();
                switch (action) {
                    //按下
                    case TouchEvent.PRIMARY_POINT_DOWN:
                        startX = x;
                        startY = y;
                        btn2.setText("按下(" + x + "," + y + ")");
                        break;
                    //弹起
                    case TouchEvent.PRIMARY_POINT_UP:
//                        btn2.setText("弹起(" + x + "," + y + ")");
                        break;
                    //滑动
                    case TouchEvent.POINT_MOVE:
//                        btn2.setText("滑动"+count);
                        endX = x;
                        endY = y;
                        //右滑动 控制左边滑动浮动不超过100
                        if (endX > startX && Math.abs(endX - endY) < 100) {

                            btn2.setText("右滑(" + x + "," + y + ")");
                        } else if (endX < startX && Math.abs(endX - endY) < 100) {
                            btn2.setText("左滑(" + x + "," + y + ")");
                        } else if (endY > startY && Math.abs(endX - startX) < 100) {
                            btn2.setText("下滑(" + x + "," + y + ")");
                        } else if (endY < startY && Math.abs(endX - startX) < 100) {
                            btn2.setText("上滑(" + x + "," + y + ")");
                        }
                        break;

                }
                // 返回为true 所有动作都会执行并返回代码
                // 返回false 表示只有一个动作会触发当前方法并执行对应代码
                return true;
            }
        });

Desliza el área negra para cambiar

Se escribe un 100 para evitar la situación en la que es claramente un deslizamiento hacia la izquierda, pero se considerará como un deslizamiento hacia la derecha. Puede ser reescrito de acuerdo a sus necesidades reales

// devuelve verdadero todas las acciones se ejecutarán y el código de retorno 
// devuelve falso significa que solo una acción activará el método actual y ejecutará el código correspondiente 
devolver verdadero;

 

Supongo que te gusta

Origin blog.csdn.net/mp624183768/article/details/124399884
Recomendado
Clasificación