Android View體系(一)視圖坐標(biāo)系
前言
Android View體系是界面編程的核心,他的重要性不亞于Android四大組件,在這個(gè)系列中我會(huì)陸續(xù)講到View坐標(biāo)系、View的滑動(dòng)、View的事件分發(fā)等文章來逐步介紹Android View體系。
1.View簡介
View是Android所有控件的基類,同時(shí)ViewGroup也是繼承自View,看下面這張圖我們就會(huì)有一個(gè)直觀的了解:
知道了View的層級(jí)關(guān)系有助于對View的理解,從上圖可以發(fā)現(xiàn)我們常用的這些控件都是繼承于View,如果我們更好的掌握了View的知識(shí)體系,那么我們在界面編程時(shí)則會(huì)更加的得心應(yīng)手。
2.Android坐標(biāo)系
Android中有兩種坐標(biāo)系,分別為Android坐標(biāo)系和視圖坐標(biāo)系,首先我們先來看看Android坐標(biāo)系。
在Android中,將屏幕的左上角的頂點(diǎn)作為Android坐標(biāo)系的原點(diǎn),這個(gè)原點(diǎn)向右是X軸正方向,原點(diǎn)向下是Y軸正方向。
在下文講到的MotionEvent提供的getRawX()和getRawY()獲取的坐標(biāo)都是Android坐標(biāo)系的坐標(biāo)。
3.視圖坐標(biāo)系
View獲取自身寬高
- getHeight():獲取View自身高度
- getWidth():獲取View自身寬度
View自身坐標(biāo)
通過如下方法可以獲得View到其父控件(ViewGroup)的距離:
- getTop():獲取View自身頂邊到其父布局頂邊的距離
- getLeft():獲取View自身左邊到其父布局左邊的距離
- getRight():獲取View自身右邊到其父布局左邊的距離
- getBottom():獲取View自身底邊到其父布局頂邊的距離
MotionEvent提供的方法
我們看上圖那個(gè)深藍(lán)色的點(diǎn),假設(shè)就是我們觸摸的點(diǎn),我們知道無論是View還是ViewGroup,最終的點(diǎn)擊事件都會(huì)由onTouchEvent(MotionEvent event)方法來處理,MotionEvent也提供了各種獲取焦點(diǎn)坐標(biāo)的方法:
- getX():獲取點(diǎn)擊事件距離控件左邊的距離,即視圖坐標(biāo)(相對于當(dāng)前視圖)
- getY():獲取點(diǎn)擊事件距離控件頂邊的距離,即視圖坐標(biāo)(相對于當(dāng)前視圖)
- getRawX():獲取點(diǎn)擊事件距離整個(gè)屏幕左邊距離,即絕對坐標(biāo)(相對于屏幕左頂點(diǎn))
- getRawY():獲取點(diǎn)擊事件距離整個(gè)屏幕頂邊的的距離,即絕對坐標(biāo)(相對于屏幕左頂點(diǎn))
posted on 2016-10-22 14:54 安卓筆記俠 閱讀(635) 評(píng)論(0) 收藏 舉報(bào)


浙公網(wǎng)安備 33010602011771號(hào)