
原文網(wǎng)站?向劉老師學(xué)習(xí),所以摘抄了老師的筆記,只想作為自己的技術(shù)積累。
前言?
Android 通過(guò)各種各樣的 View 組成用戶操作界面,View是Android所有控件的基類,同時(shí)ViewGroup也是繼承自View。它們呈現(xiàn)在四大組件中的 Activity 中。View 的使用關(guān)系到其在屏幕中的位置,大小,動(dòng)畫(huà)等等,那么在開(kāi)始之前先了解主題 —— Android 坐標(biāo)系?和?視圖坐標(biāo)系。
Android 坐標(biāo)系
在Android中,將屏幕的左上角的頂點(diǎn)作為Android坐標(biāo)系的原點(diǎn),這個(gè)原點(diǎn)向右是X軸正方向,原點(diǎn)向下是Y軸正方向。

視圖坐標(biāo)系
要了解視圖坐標(biāo)系我們只需要看懂一張圖就可以了:

常用方法
View 獲取自身寬高
getHeight():獲取View自身高度
getWidth():獲取View自身寬度
View 自身坐標(biāo)
通過(guò)如下方法可以獲得View到其父控件(ViewGroup)的距離:
getTop():獲取View自身頂邊到其父布局頂邊的距離
getLeft():獲取View自身左邊到其父布局左邊的距離
getRight():獲取View自身右邊到其父布局左邊的距離
getBottom():獲取View自身底邊到其父布局頂邊的距離
MotionEvent提供的方法
上圖那個(gè)深藍(lán)色的點(diǎn),假設(shè)就是我們觸摸的點(diǎn),無(wú)論是View還是ViewGroup,最終的點(diǎn)擊事件都會(huì)由onTouchEvent(MotionEvent event)方法來(lái)處理,MotionEvent也提供了各種獲取焦點(diǎn)坐標(biāo)的方法:
getX():獲取點(diǎn)擊事件距離控件左邊的距離,即視圖坐標(biāo)
getY():獲取點(diǎn)擊事件距離控件頂邊的距離,即視圖坐標(biāo)
getRawX():獲取點(diǎn)擊事件距離整個(gè)屏幕左邊距離,即絕對(duì)坐標(biāo)
getRawY():獲取點(diǎn)擊事件距離整個(gè)屏幕頂邊的的距離,即絕對(duì)坐標(biāo)