Android getScrollX() 、scrollBy()、 scrollTo() 、getX、getRawX、getTranslationX等的图形表示
1、getScrollX()
原点(0,0)为view左上角的坐标点。实际移动的为view的内容而并非view本身,返回值为view的内容相对于view本身的水平或者垂直方向的偏移量。
getScrollX():原点X坐标减去view内容移动后 内容左上角X坐标(左移正,右移负)
getScrollY():原点Y坐标减去view内容移动后 内容左上角Y坐标 (上移正,下移负)
2、scrollTo()、scrollBy()
scrollTo()源码
/**
* Set the scrolled position of your view. This will cause a call to
* {@link #onScrollChanged(int, int, int, int)} and the view will be
* invalidated.
* @param x the x position to scroll to
* @param y the y position to scroll to
*/
public void scrollTo(int x, int y) {
if (mScrollX != x || mScrollY != y) {
int oldX = mScrollX;
int oldY = mScrollY;
mScrollX = x;
mScrollY = y;
invalidateParentCaches();
onScrollChanged(mScrollX, mScrollY, oldX, oldY);
if (!awakenScrollBars()) {
postInvalidateOnAnimation();
}
}
}
scrollBy()源码
/**
* Move the scrolled position of your view. This will cause a call to
* {@link #onScrollChanged(int, int, int, int)} and the view will be
* invalidated.
* @param x the amount of pixels to scroll by horizontally
* @param y the amount of pixels to scroll by vertically
*/
public void scrollBy(int x, int y) {
scrollTo(mScrollX + x, mScrollY + y);
}
scrollTo():表示的是移动到指定坐标点
scrollBy():表示的是移动的增量dx和dy,在现在的基础上继续移动,如果为负值则移动的是相反方向(为正时代表右向左或者下向上)
3、getX、getRawX、getTranslationX等的图形表示
https://blog.csdn.net/dmk877/article/details/51550031
event.getX():表示的是触摸的点距离自身左边界的距离
event.getY():表示的是触摸的点距离自身上边界的距离
event.getRawX:表示的是触摸点距离屏幕左边界的距离
event.getRawY:表示的是触摸点距离屏幕上边界的距离
View.getWidth():表示的是当前控件的宽度,即getRight()-getLeft()
View.getHeight():表示的是当前控件的高度,即getBottom()-getTop()
View.getTop():子View的顶部到父View顶部的距离
View.getRight():子View的右边界到父View的左边界的距离
View.getBottom():子View的底部到父View的顶部的距离
View.getLeft():子View的左边界到父View的左边界的距离
View.getTranslationX()计算的是该View在X轴的偏移量。初始值为0,向左偏移值为负,向右偏移值为正。
View.getTranslationY()计算的是该View在Y轴的偏移量。初始值为0,向上偏移为负,向下偏移为证。
本文地址:https://blog.csdn.net/moyuxueyi/article/details/107189370