Android自定義View基礎

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() 觸摸點距離相對於屏幕頂邊座標的距離,即絕對座標

相關文章
相關標籤/搜索