android.view.ViewGroup#getScrollX ( )源码实例Demo

下面列出了android.view.ViewGroup#getScrollX ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: SmoothRefreshLayout   文件: SmoothRefreshLayout.java
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);
            }
        }
    }
}
 
源代码2 项目: react-native-GPay   文件: TouchTargetHelper.java
/**
 * 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;
  }
}
 
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;
    }
}
 
源代码4 项目: weex   文件: ViewUtil.java
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;
}
 
源代码5 项目: CollapsingRefresh   文件: ScrollBoundaryUtil.java
public static void transformPointToViewLocal(ViewGroup group, View child, float[] point) {
    point[0] += group.getScrollX() - child.getLeft();
    point[1] += group.getScrollY() - child.getTop();
}
 
 方法所在类