Android开发中,View一直是Android开发人员的一块心病,一方面想要进阶,一方面又害怕进阶,可以说Android的View是进阶路上的最大绊脚石,因为它涉及的东西太多了,比如本次我们此次要写的View移动,另外还包括View的触摸事件的传递,创建自定义View,这些都是极其重要且不得不面对的难题。但是无论如何,现在不克服的困难将来就会被困难克服。
Let's begin!
在此之前,我们还是先了解Android坐标系的定义规则以及View的一些位置参数。
Android坐标系View的位置及大小是由四个参数决定,即left、top、right、bottom,并且这四个参数都是相对于其父View的。int width = right-left;
int height = bottom-top;
在Activity中布局完成后,我们可以通过View一些方法获取这些参数信息://left,top,right,bottom值的获取
int left = getLeft();
int top = getTop();
int right = getRight();
int bottom = getBottom();另外Android 3.0以后加入x,y,translationX,translationY等参数。(x,y)表示为View在ViewGroup中左上角的x,y的值,translationX,translationY在用于平移一个View。默认是都为0,在调用了View的setTranslationX()/setTranslationY()之后发生改变。//x,y,translationX,translationY参数的获取
int x = getX();
int y = getY();
int translationX = getTranslationX();
int translationY = getTranslationY();
PS:调用View的setTranslationX()和setTranslationY()方法虽然可以使得View平移指定距离,但是这一过程是瞬间完成的。为了使View的移动使得更为平滑,因此可以使用View的属性动画来指定translationX和translationY