Android自定義View——座標系、獲取座標、距離等知識點梳理

本篇文章作爲Android自定義View的基礎,記錄一下相關的知識。

一、座標系

Android中的座標系總共分爲兩種,即Android座標系、View座標系

1.Android座標系
Alt
在Android中,將屏幕左上角的頂點作爲Android座標系的原點,向右是X軸正方向,向下是Y軸正方向。我們平時使用的getRawX()和geyRawY()這兩個方法獲取的座標也是Android座標系的座標。

2.View座標系
在Android系統中,View座標系與Android座標系同時存在,共同管理View,View座標系的原點默認在控件的左上角,向右是X軸正方向,向下是Y軸正方向。順便借個圖來理解一下。

在這裏插入圖片描述

二、獲取距離

1.View自身的座標通過如下方法可以得到View到其父控件(ViewGroup)的距離。

  • getTop():獲取View自身頂邊到其父佈局頂邊的距離。
  • getLeft():獲取View自身左邊到其父佈局左邊的距離。
  • getRight():獲取View自身右邊到其父佈局右邊的距離。
  • getBottom():獲取View自身底邊到其父佈局底邊的距離。

由此可得出,View的寬width=getLeft()-getRight(),高height=getBottom()-getTop()

2.MotionEvent提供的方法

假設上圖中小圓點是手指觸摸的點。無論是View還是ViewGroup,最終的點擊事件都會由onTouchEnent(MotionEvent event)方法來處理。MotionEvent在用戶交互中作用很大,內部提供了很多事件常亮,比如:ACTION_DOWN、ACTION_UP、ACTION_MOVE。

此外,MotionEvent也提供了獲取焦點座標的各種方法。

  • getX():獲取點擊事件距離空間左邊的距離,即視圖座標。
  • getY():獲取點擊事件距離空間頂邊的距離,即視圖座標。
  • getRawX():獲取點擊事件距離整個屏幕左邊的距離,即絕對座標。
  • getRawY():獲取點擊事件距離整個屏幕頂邊的距離,即絕對座標。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章