Android中有兩種座標系,分別稱之爲Android座標系和視圖座標系,而對應的方法獲取座標系的座標值,如下是做出區別:
cdn
Android的座標系是什麼樣的?blog
屏幕上的默認座標系以下:事件
注:長方形代指屏幕get
(1)Android座標系
it
O代指原點,X代指X軸,Y代指Y軸,在觸控事件中,使用getRawX()和getRawY()方法io
獲取的座標就是以這個座標系爲標準下的座標值class
(2)視圖座標系
lazyload
O代指原點,X代指X軸,Y代指Y軸,在觸控事件中,經過
方法
getX()和getY()來獲取的座標值就是視圖座標系中的座標值im
如下這圖清晰表示所獲取的方法用從哪裏到哪裏,這三個黑色框框表明不一樣的意思:最外層代指的是屏幕,中間層代指的是ViewGroup,最內層代指的是ViewGroup放置的View
所標識的方法能夠分兩類,一類是View提供的方法,一類是MotionEvent提供的方法
View提供的獲取的座標以及距離的方法:
getTop() 獲取子類View左上角距父View頂部的距離
getLeft() 獲取子類View左上角距父View左側的距離
getRight() 獲取子類View右上角距父View左側的距離
getBottom() 獲取子類View右上角距父View頂部的距離
MotionEvent提供的方法(get和getRaw的區別):
getX() 觸摸點距離所在控件左邊的距離,即視圖座標
getY() 觸摸點距離所在控件頂邊的距離,即視圖座標
getRawX() 觸摸點距離相對於屏幕左邊座標的距離,即絕對座標
getRawY() 觸摸點距離相對於屏幕頂邊座標的距離,即絕對座標