Android 提供特殊类型的触摸屏事件,例如捏合、双击、滚动、长按和退缩。 这些都被称为手势。
Android 提供了 GestureDetector 类来接收运动事件并告诉我们这些事件是否对应手势。 要使用它,您需要创建一个 GestureDetector 对象,然后使用 GestureDetector.SimpleOnGestureListener 扩展另一个类来充当侦听器并覆盖一些方法。 它的语法如下 −
处理捏合手势
Android 提供 ScaleGestureDetector 类来处理诸如捏合等手势。 为了使用它,你需要实例化这个类的一个对象。 它的语法如下 −
第一个参数是上下文,第二个参数是事件监听器。 我们必须定义事件侦听器并重写函数 OnTouchEvent 以使其工作。 它的语法如下 −
除了捏合手势之外,还有其他方法可以通知更多有关触摸事件的信息。 它们在下面列出 −
序号 | 方法 & 描述 |
1 | getEventTime() 该方法获取当前正在处理的事件的事件时间。 |
2 | getFocusX() 该方法获取当前手势焦点的 X 坐标。 |
3 | getFocusY() 此方法获取当前手势焦点的 Y 坐标。 |
4 | getTimeDelta() 此方法返回上一个接受的缩放事件和当前缩放事件之间的时间差(以毫秒为单位)。 |
5 | isInProgress() 如果正在进行缩放手势,则此方法返回 true |
6 | onTouchEvent(MotionEvent event) 此方法接受 MotionEvents 并在适当时分派事件。 |
示例
这是一个演示使用 ScaleGestureDetector 类的示例。 它创建了一个基本应用程序,允许您通过捏合放大和缩小。
要试验此示例,您可以在实际设备或启用了触摸屏的模拟器中运行它。
步骤 | 描述 |
1 | 您将使用 Android Studio 在 com.example.sairamkrishna.myapplication 包下创建一个 Android 应用程序。 |
2 | 修改 src/MainActivity.java 文件添加必要的代码。 |
3 | 修改 res/layout/activity_main 以添加相应的 XML 组件 |
4 | 运行应用程序并选择一个正在运行的 android 设备并在其上安装应用程序并验证结果 |
以下是修改后的主活动文件src/MainActivity.java的内容。
以下是xml res/layout/activity_main.xml 的修改内容。
这里 abc 表示 tutorialspoint 的 logo
以下是 res/values/string.xml 的内容。
以下是 AndroidManifest.xml 文件的内容。
让我们尝试运行您的应用程序。 我假设您已将实际的 Android 移动设备与您的计算机连接起来。 要从 Android Studio 运行应用程序,请打开项目的一个活动文件,然后单击工具栏中的 Run
图标。示例输出应该是这样的 −
现在只需将两根手指放在 android 屏幕上,然后将它们分开,您会看到 android 图像正在缩放。 如下图所示 −
现在再次将两根手指放在安卓屏幕上,尝试合上它们,你会看到安卓图像正在缩小。 如下图所示 −