简单明了。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; } }