因爲移動設備通常定義屏幕左上角爲座標原點,向右爲x軸增大方向,向下爲y軸增大方向, 因此在手機屏幕上的座標系與數學中常見的座標系是稍微有點差異的,詳情以下:java
(PS:其中的∠a 是對應的,注意y軸方向!)spa
實際屏幕上的默認座標系以下:code
PS: 假設其中棕色部分爲手機屏幕blog
注意:View的座標系統是相對於父控件而言的.get
getTop(); //獲取子View左上角距父View頂部的距離
getLeft(); //獲取子View左上角距父View左側的距離
getBottom(); //獲取子View右下角距父View頂部的距離
getRight(); //獲取子View右下角距父View左側的距離
以下圖所示:數學
event.getX(); //觸摸點相對於其所在組件座標系的座標
event.getY();
event.getRawX(); //觸摸點相對於屏幕默認座標系的座標
event.getRawY();
以下圖所示:io
PS:其中相同顏色的內容是對應的,其中爲了顯示方便,藍色箭頭向左稍微偏移了一點.event
序號 | 要點 |
---|---|
1 | 在數學中常見的座標系與屏幕默認座標系的差異 |
2 | View的座標系是相對於父控件而言的 |
3 | MotionEvent中get和getRaw的區別 |