简单明了。getRawX是以屏幕左上角为原点(0,0)手触摸到按钮的位置为终点的坐标。getRawY同理。getX是以控件本身的左上角为原点(0,0)手触摸的位置为终点的坐标。
public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
Button btn = null;
int x=0;
int y=0;
int rawx=0;
int rawy=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.button);
btn.setOnTouchListener(this);
}
public boolean onTouch(View view, MotionEvent event) {
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
x=(int)event.getX();
y=(int)event.getY();
rawx=(int)event.getRawX();
rawy=(int)event.getRawY();
Log.d("-----------","getX="+x+" getY="+y+" "+"getRawX="+rawx+" getRawY="+rawy);
break;
case MotionEvent.ACTION_UP:
break;
}
return false;
}
}