在安卓代码编写过程中,一般都是通过xml的形式来规划界面组件的布局,然后在对应的activity的子类中通过id找到相对应的控件。但出于何种各样的需要,我们需要通过代码来改变控件的位置,可以通过如下的两种方式来改变:
一. 通过view的layout(left,right,top,down)来改变的。可以用view的getLeft,getRight,getTop,getBotton方法来获取Left,Right,Top,Botton的值,然后加上算出的偏移 (event.getRawX())得到改变后的Left,Right,Top,Botton的值.
二. 通过view.setLayoutParam()的方式来设置view在父布局中的布局参数。
ps:整个View的制作过程,分为onMeasure->onLayout->onDraw,在窗口的oncreate方法中,不要用第一种方式,因为view可能都没有绘制出来,就不可能改变位置,只能通过方式二,通过设置从布局参数的方式,让view完全后重新调整布局参数。
原文:http://www.cnblogs.com/android-er/p/5300145.html