public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mBtn = (Button)findViewById(R.id.btn);
mBtn.setOnTouchListener(new Button.OnTouchListener()
{
int[] temp = new int[] { 0, 0 };
@Override
public boolean onTouch(View v, MotionEvent event)
{
int ea = event.getAction();
int x = (int)event.getRawX();//相对于屏幕
int y = (int)event.getRawY();//相对于屏幕
switch (ea)
{
case MotionEvent.ACTION_DOWN:
temp[0] = (int)event.getX();//相对于容器(button)
temp[1] = y - v.getTop();
break;
case MotionEvent.ACTION_MOVE:
v.layout(x - temp[0], y - temp[1], x + v.getWidth()
- temp[0], y - temp[1] + v.getHeight());
v.postInvalidate();
break;
default:
break;
}
return false;
}
});
}