(3.5)HarmonyOS鸿蒙上下左右方向滑动

需要获取按下时候的坐标和松开时候的坐标,并将两者进行比较。
在这里插入图片描述
①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>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java selenium用js点击_Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?...

小编典典你可以通过以下任一过程解决它们&#xff1a;1.由于存在JavaScript或AJAX调用而无法单击元素尝试使用ActionsClass&#xff1a;WebElement element driver.findElement(By.id("navigationPageButton"));Actions actions new Actions(driver);actions.moveT…

(3.5)HarmonyOS鸿蒙多按钮点击事件

多按钮的点击事件其实与只有一个是类似的&#xff0c;只不过要在调用 onClick&#xff08;&#xff09;时进行判断&#xff0c;判断获取到的component是谁即可。 package com.example.yeman.slice;import com.example.yeman.ResourceTable; import ohos.aafwk.ability.Ability…

sql 注射_基本注射/资格赛,范围

sql 注射这是上周解决的DI / CDI基础知识的延续-在本文中&#xff0c;我将讨论基础注入&#xff0c;限定词和范围。 在上一个主题中&#xff0c;我们提供了有关DI / CDI概念的大量信息&#xff0c;我们还讨论了如何使用注释加载这些bean或类-这构成了对象的组成并创建了关于如…

计算机二级web题目(9.1)--综合选择题3

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1下列叙述中正确的是(D)。 A、栈是"先进先出"的线性表 B、队列是"…

java小程序 2048_微信小程序之游戏2048

主要用来锻炼逻辑思维能力image.png可以选模式image.png这里面主要解决的问题是&#xff1a;1.判断滑动方向//在滑动块级绑定滑动开始和滑动结束的方法很原始的方法&#xff0c;startFn时保存开始的(x,y),endFn时保存结束的(x1,y2),根据这四个参数 判断方向&#xff0c;算法在方…

现场故事:从Log4J迁移到Log4J2

通过从应用程序中学习企业APM产品&#xff0c;发现更快&#xff0c;更高效的性能监控。 参加AppDynamics APM导览&#xff01; 与许多Java应用程序一样&#xff0c;AppDynamics Java代理广泛使用日志记录。 多年来&#xff0c;我们一直使用Log4J作为日志记录框架。 虽然Log4J的…

Java面向对象(8)--继承性

多个类中存在相同属性和行为时&#xff0c;可以将这些内容抽取到单独一个类中&#xff0c;那么多个类无需再定义这些相同的属性和行为&#xff0c;只要继承那个类即可。 这里的多个类称为子类(派生类)&#xff0c;单独的这个类称为父类(基类或超类)。 语法格式&#xff1a;cla…

aimesh node重启_华硕 RT-AC86U 和 网件 R7000 组 AiMesh 成功

家里之前买了一个 R7000 主路由器&#xff0c;后来我嫌我房间里的信号有点烂( 5G 信号只能 2 格&#xff0c;网速比 2.4G 还慢)&#xff0c;所以就入手了一个华硕 RT-AC86U 作为主路由器&#xff0c;R7000 则作为 AP。在买的时候就想组 AiMesh&#xff0c;但是因为种种事情耽搁…

Java面向对象(9)--方法的重写(override/overwrite)

在子类中可以根据需要对从父类中继承来的方法进行改造&#xff0c;也称为方法的重置、覆盖。在程序执行时&#xff0c;子类的方法将覆盖父类中同名同参数列表的方法。 权限修饰符 返回值类型 方法名&#xff08;形参列表&#xff09; throws 异常类型{方法体; }①子类重写的方法…

maven ant_如何在Maven中运行Ant目标?

maven antmaven-antrun-plugin允许我们在各种maven构建阶段中运行ant目标。 我将专门为具有开发环境的开发人员解释maven-antrun-plugin的非常实际的用法。 通常&#xff0c;使用maven build&#xff0c;您会将项目捆绑到war文件或ear文件中。 您可以使用maven-antrun-plugin…

java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...

我想做标题所说的.部分解决方案例如,在Windows中,您可以使用以下代码在默认资源管理器中打开文件并突出显示它.(虽然它需要修改包含空格的文件)&#xff1a;/*** Opens the file with the System default file explorer.** param path the path*/public static void openFileLo…

win10下vscode配置c语言环境

1、C编译器下载 C编译器&#xff08;MinGW-W64 GCC&#xff09;的下载&#xff1a;点击官方下载 或者点击网盘下载提取码为karj 下载完成后解压&#xff0c;将解压后的文件夹放到合适的位置&#xff0c;点开其bin子文件夹&#xff0c;复制路径。 2、win10下环境变量配置 ①…

java jdbc 乱码_【求助】为什么用纯java jdbc插入mysql一直乱码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼String str "人造革";//gbk编码使用2个字节表示一个汉字,所以buffer的长度应该为6byte[] buffer str.getBytes("gbk");//[-56, -53, -44, -20, -72, -17]System.out.println("gbk编码的byte信息:"…

Java面向对象(10)--super关键字

在子类中使用super来调用父类中的指定操作&#xff1a; ①super可用于访问父类中定义的属性 ②super可用于调用父类中定义的成员方法 ③super可用于在子类构造器中调用父类的构造器 super的追溯不仅限于直接父类。 我们可以在子类的方法或构造器中&#xff0c;通过使用"s…

Java的Gradle依赖关系,使用编译还是实现?

当我向一位同事解释如何将Gradle用于Java项目时&#xff08;他正在远离Maven &#xff09;&#xff0c;我们遇到了各种代码示例。 有些示例将编译配置用于依赖项&#xff0c;而其他示例则使用Implements和api 。 dependencies { compile commons-httpclient:commons-httpclien…

Java面向对象(11)--多态性

父类 变量名 new 子类&#xff08;&#xff09;&#xff1b;对象的多态性&#xff1a;父类的引用指向子类的对象 Java引用变量有两个类型&#xff1a;编译时类型和运行时类型。编译时类型由声明 该变量时使用的类型决定&#xff0c;运行时类型由实际赋给该变量的对象决定。简…

java如何替换字符串0A_我有一个带有“ \ u00a0”的字符串,我需要将其替换为“” str_replace failed...

我需要清理来自各种Microsoft Office套件应用程序(Excel&#xff0c;Access和Word)的字符串(复制/粘贴)&#xff0c;每个应用程序都有自己的一组编码。我将json_encode用于调试目的&#xff0c;以便能够看到每个编码的字符。我可以使用str_replace清除到目前为止找到的所有内容…

Java面向对象(12)--对象类型转换 (Casting )

基本数据类型的Casting&#xff1a; ①自动类型转换&#xff1a;小的数据类型可以自动转换成大的数据类型 如long g20; double d12.0f ②强制类型转换&#xff1a;可以把大的数据类型强制转换(casting)成小的数据类型 如 float f(float)12.0; int a(int)1200L Java对象的强制…

知识蒸馏 循环蒸馏_Java垃圾收集蒸馏

知识蒸馏 循环蒸馏串行&#xff0c;并行&#xff0c;并发&#xff0c;CMS&#xff0c;G1&#xff0c;Young Gen&#xff0c;New Gen&#xff0c;Old Gen&#xff0c;Perm Gen&#xff0c;Eden&#xff0c;Tenured&#xff0c;Survivor Spaces&#xff0c;Safepoints和数百个JVM…

Java面向对象(13)--==操作符与equals方法

&#xff1a;运算符 可以使用在基本数据类型变量和引用数据类型变量中 ①如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等(类型不一定要相同&#xff0c;当要能够统一)。 int i 9;int j 9;double d 9.0;System.out.println(i j); //trueSystem.out.println…