View的事件體系(1)-View基礎知識

學習記錄自《Android開發藝術探索》.

1.1 什麼是View

1,View是Android中所有控件的基類.

2,不論是Button還是RelativeLayout和ListView都繼承自View.

3,View是界面層的抽象,它代表了一個控件.

4,ViewGroup控件組,ViewGroup包含了許多控件,即一組View.

5,View本身可以是一個控件也可以由多個控件組成一組控件,通過這種關係就形成了VIew樹的結構.

View繼承樹

1.2 View的位置參數

1,View的位置由它的四個頂點來決定:top,left,right,bottom.

2,top左上角縱座標,left左上角橫座標,right右下角橫座標,bottom右下角縱座標.

3,座標都是相對View的父容器來說的,因此它是一個相對座標.

4,在Android中,x軸和y軸的正方向分別爲向右和向下.

View座標系

根據view的寬高和座標關係:

width = right - left;

height = bottom - top;

獲取View的四個參數

  • Left = getLeft();
  • Right = getRight();
  • Top = getTop();
  • Bottom = getBottom();

3.0後增加的參數

  • x、y、translationX和translationY
  • x和y相對View的左上角座標
  • translationX和translationY是View左上角相對於容器的偏移量.默認值爲0.
  • view爲其提供了get/set方法.
  • x = left + translationX; y = top + translationY;

tips:在平移過程中top和left始終爲原始位置左上角的信息.此時發生變化的是x、y、translationX和translationY.

如想要view不斷移動需要不斷加大translationX或translationY的值.

1.3 MotionEvent和ThouchSlop

1,MotionEvent :

手指觸摸事件中,典型事件類型如下

  • ACTION_DOWN : 手指觸摸按下時

  • ACTION_MOVE : 手指在屏幕上以活動

  • ACTION_UP : 手指在屏幕上鬆開一瞬間.

正常情況下,一次手指觸摸屏幕的行爲所觸發的一系列點擊事件:

  • 點擊鬆開:DOWN - > UP
  • 點擊滑動鬆開 : DOWN - > MOVE…..MOVE - > UP

通過MotionEvent對象可以獲得點擊事件發生的x和y座標.

系統提供了兩種獲取座標的方法

  • getX / getY : 返回相對於當前View的x和y的座標.
  • getRawX / getRawY : 返回相對於手機屏幕的座標.

2,TouchSlop:

  • 系統所能識別出的被認爲是滑動的最小距離.
  • 兩次滑動的距離小於這個常量,系統不認爲是在滑動操作.
  • 這是一個常量,和設備有關,不同設備上的值可能不同.
  • 通過ViewConfiguration.get(getContext().getScaledThouchSlop());獲取.
  • 兩次滑動事件的距離小於這個值,可以認爲沒有達到滑動的臨界值.
發佈了32 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章