摘要
View
left = getLeft();top = getTop();right = getRight();bottom = getBottom();
这四个方法获取的坐标表示的是View原始状态时相对于父容器的坐标,对View进行平移操作并不会改变着四个方法的返回值。
- left/top表示view左上角相对于父布局x/y方向上的坐标。
- right/bottom表示view右下角相对于父布局x/y方向上的坐标。
- view的宽度width = right - left;view的高度height = bottom - top;
x=getX();translationX=getTranslationX();
getX()与getY()方法获取的是View左上角相对于父容器的坐标,当View没有发生平移操作时,getX()==getLeft()、getY()==getTop()。
x表示view相对于父布局左上角的坐标,会随着view的移动改变。
translationX表示view左上角相对于当前view原始位置x方向移动的距离,在view不移动时默认为0。x = left + translationX
scrollTo() & scrollBy()只能将view的内容进行移动,并不能将view本身进行移动;
- 如果想改变view在屏幕中的位置,调用public void offsetLeftAndRight(int offset)用于左右移动方法或public void offsetTopAndBottom(int offset)用于上下移动。
- scrollTo(x,y)表示view的(x,y)点与手机屏幕的左上角对齐。
- scrollBy(dx,dy):dx>0表示视图(View或ViewGroup)的内容从右向左滑动;反之,从左向右滑动;dy>0表示视图(View或ViewGroup)的内容从下向上滑动;反之,从上向下滑动。
scrollX=getScrollX();scrollY=getScrollY();
scrollX表示手机屏幕显示区域左上角x坐标减去view左上角x坐标。
scrollY表示手机屏幕显示区域左上角y坐标减去view左上角y坐标。
MotionEvent
x = getX();rawX = getRawX();
x表示触到view时相对于该view左上角的x方向位置。如果该view移动,则代表这次触到与上一次view所在位置的距离。
rawX表示触到view时相对于屏幕x方向的位置。