Android自定義View中的常用方法(距離、位置、點選事件)

_小馬快跑_發表於2017-12-15

View介紹的官網地址: https://developer.android.com/reference/android/view/View.html

####螢幕的左上角為座標的原點,螢幕上邊緣往右為X軸正方向,螢幕左邊緣往下為Y軸正方向.

view自身座標:getLeft(),getTop(),getRight(),getBottom() view自身寬高: getWidth(),getMeasuredWidth(),getHeight(),getMeasuredHeight()  MotionEvent獲取座標:getX(),getY(),getRawX(),getRawY()  View的Padding:getPaddingLeft(),getPaddingTop(),getPaddingRight(),getPaddingBottom()

##Position: getLeft() : 子view的左邊緣相對於父view左邊緣的距離,單位是畫素. getRight(): 子view的右邊緣相對於父view左邊緣的距離,單位是畫素. getTop (): 子view的上邊緣相對於父view上邊緣的距離,單位是畫素. getBottom():子view的下邊緣相對於父view上邊緣的距離,單位是畫素.

##Size getMeasuredWidth()和getWidth():getMeasuredWidth()是在XML或者程式碼中設定的寬度,即原始寬度,而getWidth() 是最終測量的寬度,是在onLayout()之後獲得的值,兩者之間可能相同,可能不同;getMeasuredHeight(),getHeight()同理。 關於getWidth()和getMeasuredWidth()的區別詳細請檢視: http://www.cnblogs.com/summerpxy/p/4983600.html

##MotionEvent getX():點選事件的點在控制元件中的X座標,即點相對於控制元件左邊緣的距離 getY():點選事件的點在控制元件中的Y座標,即點相對於控制元件上邊緣的距離 getRawX():點選事件的點在整個螢幕中的X座標,即點相對於螢幕左邊緣的距離 getRawY():點選事件的點在整個螢幕中的Y座標,即點相對於螢幕上邊緣的距離

用一張圖來解釋一下就很清晰了:

View.png
圖片摘自:http://blog.csdn.net/jason0539/article/details/42743531

由此可以得到幾個結論:

  1. 座標點(getLeft() ,getTop ())相當於子view左上角的點在父view中的座標 座標點(getRight(),getBottom())相當於子view右下角的點在父view中的座標
  2. getRight()=getLeft() + getWidth():即view的右邊緣的座標距離等於view的左邊緣距離加上view寬度之和
  3. getBotton()=getTop ()+getHeight():即view的下邊緣的座標距離等於view的上邊緣距離加上view高度之和

##padding getPaddingLeft():View裡的content距離View左邊緣的距離 getPaddingTop():View裡的content距離View上邊緣的距離 getPaddingRight():View裡的content距離View右邊緣的距離 getPaddingBottom():View裡的content距離View下邊緣的距離

這個相對簡單,再來張圖:

padding.jpg
可以得到Content右上角M的座標: X座標: =View.getWidth() - View.getPaddingRight() =View.getPaddingLeft()+Content.width Y座標: =View.getPaddingTop() =View.getHeight()-Content.height

如有錯誤,歡迎批評指正!覺得文章對您有幫助,隨手點個讚唄!

作者:@小馬快跑 Q Q :504091986@qq.com 部落格: http://www.jianshu.com/users/185028550381/latest_articles github:https://github.com/crazyqiang

相關文章