`

android中getX(),getY() 与getRawX(),getRawY()分析

阅读更多

[b]先看getX(),getY()源码解释
 /**
     * {@link #getX(int)} for the first pointer index (may be an
     * arbitrary pointer identifier).
     *
     * @see #AXIS_X
     */
    public final float getX() {
        return nativeGetAxisValue(mNativePtr, AXIS_X, 0, HISTORY_CURRENT);
    }

    /**
     * {@link #getY(int)} for the first pointer index (may be an
     * arbitrary pointer identifier).
     *
     * @see #AXIS_Y
     */
    public final float getY() {
        return nativeGetAxisValue(mNativePtr, AXIS_Y, 0, HISTORY_CURRENT);
    }

这个是相对于view的坐标距离
[b]再看GetRawX(),getRawY()源码解释
  /**
     * Returns the original raw X coordinate of this event.  For touch
     * events on the screen, this is the original location of the event
     * on the screen, before it had been adjusted for the containing window
     * and views.
     *
     * @see getX()
     * @see #AXIS_X
     */
    public final float getRawX() {
        return nativeGetRawAxisValue(mNativePtr, AXIS_X, 0, HISTORY_CURRENT);
    }

    /**
     * Returns the original raw Y coordinate of this event.  For touch
     * events on the screen, this is the original location of the event
     * on the screen, before it had been adjusted for the containing window
     * and views.
     *
     * @see getY()
     * @see #AXIS_Y
     */
    public final float getRawY() {
        return nativeGetRawAxisValue(mNativePtr, AXIS_Y, 0, HISTORY_CURRENT);
    }[/b]

从字面上可以大致看到是相对于设备屏幕。
详细参见图片

  • 大小: 14 KB
0
1
分享到:
评论

相关推荐

    Android MotionEvent中getX()和getRawX()的区别实例详解

    在ACTION_MOVE部分,我们分别用`getX()`和`getRawX()`获取了触摸点相对于按钮和屏幕的X坐标,以及`getY()`和`getRawY()`获取了相应的Y坐标,并将这些值记录在日志中。 通过查看日志输出,我们可以直观地看到`getX()...

    android利用windowmanager实现悬浮窗

    主要分析更新view的实现过程:实现触摸事件监听,重写onTouch()方法,在ActionDown时,利用getRawX和getRawY得到x1、y1,在ActionMove时,利用getX和getY获取移动过程的x2、y2,两者作差后作为更新的view对应的xy...

    Android开发中MotionEvent坐标获取方法分析

    本篇文章将深入探讨在Android中如何通过MotionEvent获取屏幕坐标的方法,特别是`getX()`和`getRawX()`的区别。 `getX()`方法用于获取手指触摸点相对于当前处理事件的View的X坐标。这意味着,如果用户在一个按钮...

    Android 坐标系与视图坐标系图解分析

    "Android 坐标系与视图坐标系图解分析" Android 坐标系是指 Android 中的屏幕坐标系,原点位于屏幕的左上角顶点,从原点向右是 X 轴的正方向,从原点向下是 Y 轴的正方向。 Android 坐标系是 Android 中的绝对坐标...

    Android应用 坐标系详细介绍

    例如,当用户触摸屏幕时,可以使用`getX()` 和 `getY()` 获取触点相对于当前View的位置,`getRawX()` 和 `getRawY()` 则提供触点相对于屏幕的全局位置。 4. 自定义控件与坐标系 自定义View时,理解坐标系至关重要...

    Android 图片任意移动效果

    因此,我们需要使用`View.getX()`和`View.getY()`获取视图的当前位置,然后使用`MotionEvent.getRawX()`和`MotionEvent.getRawY()`获取手指在屏幕上的位置,再减去视图左上角相对于屏幕的位置,得到相对于视图的坐标...

    Android随意拖动控件视图

    因此,我们需要将屏幕坐标转换为相对布局的坐标,使用`View.getLocationOnScreen()`和`View.getX()`、`View.getY()`方法获取原始位置,`MotionEvent.getRawX()`和`MotionEvent.getRawY()`获取手指的当前位置。...

    Android事件分发机制(上) ViewGroup的事件分发

    开发者可以通过getRawX和getRawY获取事件相对于屏幕的坐标,而getX和getY则返回相对于当前View的坐标。 在事件分发过程中,有三个核心方法: 1. **dispatchTouchEvent(MotionEvent ev)**:这是每个View都会调用的...

    深入浅析Android坐标系统

    - **相对坐标**:`MotionEvent`对象提供了触摸事件的坐标信息,`getX()`和`getY()`返回的是事件相对于当前View的位置,而`getRawX()`和`getRawY()`则是相对于整个屏幕的坐标。 3. **触摸事件处理** 当用户在屏幕...

    android_view_MotionEvent.rar_float

    1. `getX(int pointerIndex)`和`getY(int pointerIndex)`:返回指定触点在屏幕上的X和Y坐标,坐标系原点位于屏幕左上角。 2. `getRawX()`和`getRawY()`:返回相对于设备屏幕的X和Y坐标,不受父视图的滚动或缩放影响...

    Android应用源码之触摸轨迹曲线.zip

    可以使用`View.getX()`和`View.getY()`方法获取View的左上角位置,然后用`event.getRawX()`和`event.getRawY()`获取原始触摸坐标,进行相减得到相对坐标。 6. 动画效果: 为了使轨迹曲线更流畅,可以添加平滑动画...

    android获取屏幕,状态栏,标题栏宽高

    在Android开发过程中,有时我们需要精确地了解设备屏幕的具体尺寸,包括状态栏和标题栏的高度等信息。这对于实现自适应布局、全屏显示等功能至关重要。本文将详细介绍如何在Android应用中获取这些关键尺寸数据。 ##...

    Android悬浮窗,悬浮图标

    在Android系统中,悬浮窗(通常称为“悬浮图标”或“浮动小部件”)是一种能够独立于当前应用程序并在屏幕上方持续显示的小型窗口。这种功能常用于即时通讯应用、音乐播放器、桌面小部件等,为用户提供便捷的操作...

    简述Android触摸屏手势识别

    此外,`MotionEvent`对象提供了丰富的信息,如事件类型(ACTION_DOWN、ACTION_UP等)、坐标(`getRawX()`、`getRawY()`、`getX()`、`getY()`)以及压力、倾斜度等,这些信息可以用于实现更精细的手势识别,如双击、...

    Android中View位置和触摸事件详解

    Android中View位置和触摸事件详解 在 Android 开发中,View 的位置和触摸事件是非常重要的概念,对于理解 Android 中的控件布局和事件处理非常关键。下面将对 View 的位置参数和触摸事件进行详细的介绍。 一、View...

    图片缩放和移动

    当用户触摸屏幕时,我们可以通过getRawX()和getRawY()获取触点的原始坐标,然后根据这些坐标更新Matrix: ```java float dx = event.getX() - lastX; float dy = event.getY() - lastY; matrix.postTranslate(dx, ...

    Android中实现滑动的七种方式总结

    Android提供了多种方法来获取坐标,例如`getX()`和`getY()`返回的是视图坐标,`getRawX()`和`getRawY()`则返回绝对坐标,即相对于屏幕的坐标。 1. **布局方法(layout方法)**:在`View`绘制过程中,`onLayout()`...

    触屏手势识别程序

    通过分析`MotionEvent`的坐标属性(`getRawX()`、`getRawY()`、`getX()`和`getY()`),开发者可以跟踪手指在屏幕上的移动,实现拖动、滑动等操作。例如,可以检测用户是否在做水平滑动,这在滚动视图或翻页时非常...

    自定义view滑动1

    - 在处理触摸事件时,`MotionEvent`的`getX()`和`getY()`返回的是相对于View本身的坐标,`getRawX()`和`getRawY()`则是相对于屏幕的绝对坐标。 总结来说,选择哪种滑动方法取决于具体需求。scollTo和scrollBy适合...

Global site tag (gtag.js) - Google Analytics