1.getRawX()與getX()的區別java
getRawX():絕對座標ide
getX():相對座標get
mBtn_sate.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_DOWN) { Log.e("", "ACTION_DOWN=" + v.toString()); } else if(event.getAction() == MotionEvent.ACTION_UP) { Log.e("", "ACTION_UP=" + v.toString()); } else if(event.getAction() == MotionEvent.ACTION_MOVE) { //getRawX()指控件在屏幕上的X座標 if(event.getRawX() > v.getLeft() && event.getRawX() < v.getRight() && event.getRawY() > v.getTop() && event.getRawY() < v.getBottom()) { Log.e("", "超出 "); } //getX()相對於控件X座標的距離 if(event.getX() < 0 || event.getY() < 0 || event.getX() > (v.getRight() - v.getLeft()) || event.getY() > (v.getBottom() - v.getTop())) { Log.e("", "越界 "); } } return false; } });