Java Code Examples for android.view.ViewGroup#getScrollX()
The following examples show how to use
android.view.ViewGroup#getScrollX() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SmoothRefreshLayout.java From SmoothRefreshLayout with MIT License | 6 votes |
public void transformPointToViewLocal(ViewGroup group, float[] point, View child) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) { group.transformPointToViewLocal(point, child); } else { // When the system version is lower than LOLLIPOP_MR1, the system source code has no // transformPointToViewLocal method. We need to be compatible with it. point[0] += group.getScrollX() - child.getLeft(); point[1] += group.getScrollY() - child.getTop(); Matrix matrix = child.getMatrix(); if (!matrix.isIdentity()) { mCachedMatrix.reset(); if (matrix.invert(mCachedMatrix)) { mCachedMatrix.mapPoints(point); } } } }
Example 2
Source File: TouchTargetHelper.java From react-native-GPay with MIT License | 5 votes |
/** * Returns whether the touch point is within the child View * It is transform aware and will invert the transform Matrix to find the true local points * This code is taken from {@link ViewGroup#isTransformedTouchPointInView()} */ private static boolean isTransformedTouchPointInView( float x, float y, ViewGroup parent, View child, PointF outLocalPoint) { float localX = x + parent.getScrollX() - child.getLeft(); float localY = y + parent.getScrollY() - child.getTop(); Matrix matrix = child.getMatrix(); if (!matrix.isIdentity()) { float[] localXY = mMatrixTransformCoords; localXY[0] = localX; localXY[1] = localY; Matrix inverseMatrix = mInverseMatrix; matrix.invert(inverseMatrix); inverseMatrix.mapPoints(localXY); localX = localXY[0]; localY = localXY[1]; } if (child instanceof ReactHitSlopView && ((ReactHitSlopView) child).getHitSlopRect() != null) { Rect hitSlopRect = ((ReactHitSlopView) child).getHitSlopRect(); if ((localX >= -hitSlopRect.left && localX < (child.getRight() - child.getLeft()) + hitSlopRect.right) && (localY >= -hitSlopRect.top && localY < (child.getBottom() - child.getTop()) + hitSlopRect.bottom)) { outLocalPoint.set(localX, localY); return true; } return false; } else { if ((localX >= 0 && localX < (child.getRight() - child.getLeft())) && (localY >= 0 && localY < (child.getBottom() - child.getTop()))) { outLocalPoint.set(localX, localY); return true; } return false; } }
Example 3
Source File: RNTouchTargetHelper.java From react-native-sensors-analytics with Apache License 2.0 | 5 votes |
private static boolean isTransformedTouchPointInView(float x, float y, ViewGroup parent, View child, PointF outLocalPoint) { float localX = (((float) parent.getScrollX()) + x) - ((float) child.getLeft()); float localY = (((float) parent.getScrollY()) + y) - ((float) child.getTop()); Matrix matrix = child.getMatrix(); if (!matrix.isIdentity()) { float[] localXY = mMatrixTransformCoords; localXY[0] = localX; localXY[1] = localY; Matrix inverseMatrix = mInverseMatrix; matrix.invert(inverseMatrix); inverseMatrix.mapPoints(localXY); localX = localXY[0]; localY = localXY[1]; } if ((child instanceof ReactHitSlopView) && ((ReactHitSlopView) child).getHitSlopRect() != null) { Rect hitSlopRect = ((ReactHitSlopView) child).getHitSlopRect(); if (localX < ((float) (-hitSlopRect.left)) || localX >= ((float) ((child.getRight() - child.getLeft()) + hitSlopRect.right)) || localY < ((float) (-hitSlopRect.top)) || localY >= ((float) ((child.getBottom() - child.getTop()) + hitSlopRect.bottom))) { return false; } outLocalPoint.set(localX, localY); return true; } else if (localX < 0.0f || localX >= ((float) (child.getRight() - child.getLeft())) || localY < 0.0f || localY >= ((float) (child.getBottom() - child.getTop()))) { return false; } else { outLocalPoint.set(localX, localY); return true; } }
Example 4
Source File: ViewUtil.java From weex with Apache License 2.0 | 5 votes |
public static boolean isTransformedPointInView( ViewGroup parent, View child, float x, float y, @Nullable PointF outLocalPoint) { Util.throwIfNull(parent); Util.throwIfNull(child); float localX = x + parent.getScrollX() - child.getLeft(); float localY = y + parent.getScrollY() - child.getTop(); // TODO: handle transforms /*Matrix childMatrix = child.getMatrix(); if (!childMatrix.isIdentity()) { final float[] localXY = new float[2]; localXY[0] = localX; localXY[1] = localY; child.getInverseMatrix }*/ final boolean isInView = ViewUtil.pointInView(child, localX, localY); if (isInView && outLocalPoint != null) { outLocalPoint.set(localX, localY); } return isInView; }
Example 5
Source File: ScrollBoundaryUtil.java From CollapsingRefresh with Apache License 2.0 | 4 votes |
public static void transformPointToViewLocal(ViewGroup group, View child, float[] point) { point[0] += group.getScrollX() - child.getLeft(); point[1] += group.getScrollY() - child.getTop(); }