需要获取按下时候的坐标和松开时候的坐标,并将两者进行比较。

①MainAbilitySlice.java文件

可以根据使用情况做修改代码中判断处的限制偏差范围。

package com.example.yeman.slice;import com.example.yeman.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.Button;
import ohos.agp.components.Component;
import ohos.agp.components.DirectionalLayout;
import ohos.agp.components.Text;
import ohos.media.image.common.Position;
import ohos.multimodalinput.event.MmiPoint;
import ohos.multimodalinput.event.TouchEvent;public class MainAbilitySlice extends AbilitySlice implements Component.TouchEventListener{float starX;float starY;float endX;float endY;Text txt;@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);//通过id找到布局对象(其也可以理解是一种组件)DirectionalLayout dl = (DirectionalLayout) findComponentById(ResourceTable.Id_dl);//通过id找到文本框组件txt = (Text) findComponentById(ResourceTable.Id_txt);//给整个布局添加滑动事件,当在整个布局上滑动时,就会不断调用本类中onTouchEvent方法dl.setTouchEventListener(this);}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}@Overridepublic boolean onTouchEvent(Component component, TouchEvent touchEvent) {//component表示滑动的哪个组件,布局也是一种组件,实际上这里示例就是在整个布局上进行的。//touchEvent表示动作对象(按下,滑动,抬起)。//获取当前手指对于屏幕进行的操作(按下,滑动,抬起)int action = touchEvent.getAction(); //1表示按下,2表示抬起,3表示滑动(移动)if (action == TouchEvent.PRIMARY_POINT_DOWN){MmiPoint position = touchEvent.getPointerPosition(0);starX = position.getX();starY = position.getY();txt.setText(starX + "--" + starY);}else if (action == TouchEvent.PRIMARY_POINT_UP){MmiPoint position = touchEvent.getPointerPosition(0);endX = position.getX();endY = position.getY();txt.setText(endX + "--" + endY);//Math.abs(starY - endY) < 100是做一个Y方向的限定范围,下面类似。if (starX > endX && Math.abs(starY - endY) < 100){txt.setText("左滑了");}else if (starX < endX && Math.abs(starY - endY) < 100){txt.setText("右滑了");}else if (starY > endY && Math.abs(starX - endX) < 100){txt.setText("上滑了");}else if (starY < endY && Math.abs(starX - endX) < 100){txt.setText("下滑了");}else txt.setText("无效滑动(请直一点!)");}else if (action == TouchEvent.POINT_MOVE){txt.setText("滑动中...");}return true;}
}

②ability _main.xml文件

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayoutohos:id="$+id:dl"xmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:alignment="center"ohos:orientation="vertical"><Textohos:id="$+id:txt"ohos:height="match_content"ohos:width="match_content"ohos:text="这里是文本框"ohos:text_size="100"/></DirectionalLayout>

(3.5)HarmonyOS鸿蒙上下左右方向滑动相关推荐

  1. 3.5【HarmonyOS鸿蒙开发】组件RadioButton和RadioContainer

    3.5[HarmonyOS鸿蒙开发]组件RadioButton和RadioContainer 作者:韩茹 公司:程序咖(北京)科技有限公司 鸿蒙巴士专栏作家 一.RadioButton RadioBu ...

  2. (1.3)HarmonyOS鸿蒙启动程序运行流程

    程序启动运行流程: ①解析config.json文件 ②初始化 ③获取入口Ability的全类名(config.json里的module里的mainAbility) ④找到Ability并运行 ⑤运行 ...

  3. HarmonyOS(鸿蒙系统)体系

    HarmonyOS(鸿蒙系统) 鲲鹏 昇腾 EulerOS(欧拉系统) 仓颉 HarmonyOS(鸿蒙系统)体系 Harmonyos官网 HarmonyOS Developer HarmonyOS 鸿 ...

  4. 华为HarmonyOS鸿蒙系统介绍,华为鸿蒙OS系统怎么样 华为HarmonyOS鸿蒙系统介绍

    华为鸿蒙OS系统怎么样?华为在8月9日的2019华为开发者大会上正式发布了华为HarmonyOS鸿蒙系统,大家知道这个系统具体是用在哪些产品上的吗?有哪些功能呢?能兼容别的系统吗?下面小编为大家带来了 ...

  5. vb.net画上下左右方向的箭头

    画上下左右方向的箭头 新建控件 CtrArrow Imports System.Math Imports System.Drawing Imports System.Drawing.Image Pub ...

  6. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之二应用知识梳理逻辑!

    原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 王姨劝我学HarmonyOS鸿蒙2.0系列教程之一环境搭建&&跑起来模拟器! 写完了第一篇,跑去 ...

  7. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述调用方法!

    原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 王姨劝我学HarmonyOS鸿蒙2.0系列教程之一环境搭建&&跑起来模拟器! 王姨劝我学Harm ...

  8. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之四Git搭建下载实例!

    原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述&&调用方法! 相信大家看了 ...

  9. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之六自定义View涂鸦项目实战!

    这一节写个简单的项目,涂鸦,简单来讲就是画什么,显示什么.最好的网站,就是官网,这里再发一下: https://developer.harmonyos.com/cn/docs/documentatio ...

最新文章

  1. python爬取百度百科词条-python简单爬虫爬取百度百科python词条网页
  2. XP屏幕上下翻转的现象及解决
  3. mongodb启动成功连不上_MySQL数据导入到MongoDb教程
  4. 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台
  5. 标志寄存器EFLAGES
  6. MT9700参考原理图
  7. spark学习-33-Spark安全机制SecurityManager
  8. Adobe AIR * 设置移动应用程序属性
  9. Atiti.ui原理与gui理论
  10. 用HTML+CSS做一个漂亮简单的轻量级图片相册博客网站(web前端期末大作业)
  11. dubbox与dubbo
  12. 这个季节有离别——观《Sad Movie》有感
  13. 【米勒拉宾模板】Palindromic Primes
  14. 千万千万不要和女程序员做同事!否则你会......爱上她
  15. 数据清理、转换、合并、重塑
  16. 每个计算机的ip地址要一样吗,同一ip网站-局域网中的所有电脑都是同一个IP地址吗? – 手机爱问...
  17. VC语言文件正文分析器--支持格式常用文件格式
  18. RK3566-商显广告机、跑步机主板方案
  19. java html转pdf的几种方式_Java实现Html转Pdf的方法
  20. Visual_Studio_2022_Enterprise 简体中文离线版

热门文章

  1. 高级ZK:异步UI更新和后台处理–第2部分
  2. 工厂设计模式案例研究
  3. Morphia和MongoDB:不断发展的文档结构
  4. Servlet配置初始化参数/配置参数
  5. oracle导数的数据乱码,Oracle10g导数据时中文乱码相关处理
  6. Mybatis动态代理模式实现CRUD
  7. cup过高是什么意思_做青和焙火有什么关系?
  8. 今晚课题:2019-3-20
  9. oracle把多行合并成字符串,怎样将Oracle多行转换成字符串?
  10. 插入排序java_「Java」各类排序算法