diff options
| -rw-r--r-- | core/java/android/view/View.java | 54 |
1 files changed, 41 insertions, 13 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 0fc365784e49..d7940e2de98c 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -12049,13 +12049,16 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } /** - * Compute the view's coordinate within the surface. + * Gets the coordinates of this view in the coordinate space of the + * {@link Surface} that contains the view. * - * <p>Computes the coordinates of this view in its surface. The argument - * must be an array of two integers. After the method returns, the array - * contains the x and y location in that order.</p> + * <p>After the method returns, the argument array contains the x- and + * y-coordinates of the view relative to the view's left and top edges, + * respectively. * - * @param location an array of two integers in which to hold the coordinates + * @param location A two-element integer array in which the view coordinates + * are stored. The x-coordinate is at index 0; the y-coordinate, at + * index 1. */ public void getLocationInSurface(@NonNull @Size(2) int[] location) { getLocationInWindow(location); @@ -25571,11 +25574,27 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } /** - * <p>Computes the coordinates of this view on the screen. The argument - * must be an array of two integers. After the method returns, the array - * contains the x and y location in that order.</p> + * Gets the global coordinates of this view. The coordinates are in the + * coordinate space of the device screen, irrespective of system decorations + * and whether the system is in multi-window mode. * - * @param outLocation an array of two integers in which to hold the coordinates + * <p>In multi-window mode, the global coordinate space encompasses the + * entire device screen, ignoring the bounds of the app window. For + * example, if the view is in the bottom portion of a horizontal split + * screen, the top edge of the screen—not the top edge of the + * window—is the origin from which the y-coordinate is calculated. + * + * <p><b>Note:</b> In multiple-screen scenarios, the global coordinate space + * is restricted to the screen on which the view is displayed. The + * coordinate space does not span multiple screens. + * + * <p>After the method returns, the argument array contains the x- and + * y-coordinates of the view relative to the view's left and top edges, + * respectively. + * + * @param outLocation A two-element integer array in which the view + * coordinates are stored. The x-coordinate is at index 0; the + * y-coordinate, at index 1. */ public void getLocationOnScreen(@Size(2) int[] outLocation) { getLocationInWindow(outLocation); @@ -25588,11 +25607,20 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } /** - * <p>Computes the coordinates of this view in its window. The argument - * must be an array of two integers. After the method returns, the array - * contains the x and y location in that order.</p> + * Gets the coordinates of this view in the coordinate space of the window + * that contains the view, irrespective of system decorations. + * + * <p>In multi-window mode, the origin of the coordinate space is the + * top left corner of the window that contains the view. In full screen + * mode, the origin is the top left corner of the device screen. + * + * <p>After the method returns, the argument array contains the x- and + * y-coordinates of the view relative to the view's left and top edges, + * respectively. * - * @param outLocation an array of two integers in which to hold the coordinates + * @param outLocation A two-element integer array in which the view + * coordinates are stored. The x-coordinate is at index 0; the + * y-coordinate, at index 1. */ public void getLocationInWindow(@Size(2) int[] outLocation) { if (outLocation == null || outLocation.length < 2) { |