安卓自定義View基礎-座標系

一.屏幕座標系和數學座標系的區別

因爲移動設備通常定義屏幕左上角爲座標原點,向右爲x軸增大方向,向下爲y軸增大方向, 因此在手機屏幕上的座標系與數學中常見的座標系是稍微有點差異的,詳情以下:java

PS:其中的∠a 是對應的,注意y軸方向!spa

數學座標系 安卓屏幕座標系

實際屏幕上的默認座標系以下:code

PS: 假設其中棕色部分爲手機屏幕blog

屏幕默認座標系示例

二.View的座標系

注意:View的座標系統是相對於父控件而言的.get

getTop();       //獲取子View左上角距父View頂部的距離
getLeft();      //獲取子View左上角距父View左側的距離
getBottom();    //獲取子View右下角距父View頂部的距離
getRight();     //獲取子View右下角距父View左側的距離

以下圖所示:數學

View座標系

三.MotionEvent中 get 和 getRaw 的區別

event.getX();       //觸摸點相對於其所在組件座標系的座標
event.getY();

event.getRawX();    //觸摸點相對於屏幕默認座標系的座標
event.getRawY();

以下圖所示:io

PS:其中相同顏色的內容是對應的,其中爲了顯示方便,藍色箭頭向左稍微偏移了一點.event

get雨getRaw區別

四.核心要點

序號 要點
1 在數學中常見的座標系與屏幕默認座標系的差異
2 View的座標系是相對於父控件而言的
3 MotionEvent中get和getRaw的區別
相關文章
相關標籤/搜索