Android View坐標系學習記錄

最近學習了一下View的坐標系,在此記錄一下。

其實感覺看懂了下面這張圖,也就基本可以理解View的坐標系了。


圖片來自網絡

屏幕的左上角為(0, 0)

View的幾個方法

  • getLeft()
    是view自身的左邊到其父布局左邊的距離,一定記住是距父布局而不是距屏幕,其他的幾個方法類似

  • getTop()
    是view自身的頂邊到其父布局頂邊的距離

  • getRight()
    是view自身的右邊到其父布局左邊的距離

  • getBottom()
    是view自身的底邊到其父布局頂邊的距離

  • getHeight()
    獲取控件自身的高度

  • getWidth()
    獲取控件自身的寬度

    /**
     * Return the width of the your view.
     *
     * @return The width of your view, in pixels.
     */
    @ViewDebug.ExportedProperty(category = "layout")
    public final int getWidth() {
        return mRight - mLeft;
    }

    /**
     * Return the height of your view.
     *
     * @return The height of your view, in pixels.
     */
    @ViewDebug.ExportedProperty(category = "layout")
    public final int getHeight() {
        return mBottom - mTop;
    }

其實查看了View的源碼不難發現,實際上寬度是通過計算mRight - mLeft得到的,而高度則是mBottom - mTop得到的

MotionEvent的幾個方法

  • getX()
    獲取點擊事件相對控件自己左邊的x軸坐標,即點擊事件距離控件自己左邊的距離

  • getY()
    獲取點擊事件相對控件自己頂邊的y軸坐標,即點擊事件距離控件自己頂邊的距離

  • getRawX()
    獲取點擊事件相對整個屏幕左邊的x軸坐標,即點擊事件距離整個屏幕左邊的距離

  • getRawY()
    獲取點擊事件相對整個屏幕頂邊的y軸坐標,即點擊事件距離整個屏幕頂邊的距離

大概就是這些,以后再補充。

今年要多學習,并且養成記錄和寫博客的好習慣!堅持!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容