Android 自定義 View 之 Android 坐標系統


在真正的學習 Android 自定義 View之前, 我們先來了解一下 Android 的坐標系相關知識.
android 開發交流群: 190088567

一. 坐標系分類:
Android 中的坐標系可以分為三類: 屏幕坐標系, 布局坐標系, 以及視圖坐標系.

  1. 屏幕坐標系: 該坐標系是以屏幕的左上角為原點(0, 0), 水平向右代表 x 方向的正方向, 垂直向下代表 y方向的正方向, 如下圖所示:
  2. 布局坐標系: 該坐標系是以 view 的左上角為坐標原點, 水平向右代表 x 方向的正方向, 垂直向下代表 y 方向的正方向, view 的坐標原點是在 layout 布局過程中做確定的.
  3. 視圖坐標系: 該坐標系是在 view 繪制過程中, 繪制的內容將該坐標系作為參考, 來繪制 view.我們可以看下下面的這張圖片:

二. view 當中的方法:

  1. getTop():獲取 view 本身頂部到父容器 ViewGroup 頂部的距離.
  2. getBottom(): 獲取 view 本身底部到父容器 ViewGroup 頂部的距離.(注意這里是ViewGroup頂部)
  3. getLeft(): 獲取 view 本身左側到父容器 ViewGroup 左側的距離.
  4. getRight(): 獲取 view 本身右側到父容器 ViewGroup 左側的距離.(這里是ViewGroup左側)
    上面的幾個方法所得到的值都是相對於父容器的, 而不是整個屏幕.
  5. offsetLeftAndRight(int offset): 水平方向移動view, offset 為正則向右移動, offset 為負則向左移動
  6. offsetTopAndBottom(int offset): 垂直方向移動view, offset 為正則向下移動, offset 為負則向右移動
    上面兩個方法中對應的 getLeft() 和 getTop() 返回的值會改變

在 Android3.0以后 view 又增加了一些關於 view 的屬性:

  1. x, y: 標示 view 左上角的坐標, 坐標系是父 view 的視圖坐標, 其值為:

    1
    2
    x = mleft + tranlationX
    y = mtop + tranlationY
  2. translationX, translationY: 表示 view 位置的偏移量, 初始值為0
    該坐標系主要用在 view 的動畫操作上面, 在后續的文章中會詳細介紹 android 中的動畫

三. MotionEvent當中的方法:(假設圖片中的小點就是我們手指觸摸在手機屏幕中的位置)

  1. getY(): view 本身頂部距離父容器頂部的距離
  2. getX(): view 本身左側距離父容器左側的距離
  3. getRawX(): view 本身左側距離手機屏幕左側的距離
  4. getRawY(): view 本身頂部距離手機屏幕頂部的距離

前兩個方法是相對於父容器而言的, 后兩個方法是相對於整個屏幕而言的, 這個地方不要弄混了

Android 中的坐標系相關知識是自定義 View 中的基礎知識, 也是為后續的學習做鋪墊, 本節內容相對來說也比較簡單, 不明白的地方可以留言或者加群(190088567),下篇文章我們將詳細講解 View 中的 Paint 相關知識.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM