Android总结 之 View系统学习(一)
一. View的體系結構
view是Android 所有控件的基類,ViewGroup相當于View的結合,一些Layout,如FrameLayout、LinearLayout和RelativeLayout都是繼承于ViewGroup。
二. View的屬性
View通過點擊事件點擊到的點也能通過MotionEvent得到信息:
三. View的滑動
四. Animator動畫
靜態工廠:ObjectAnimator.ofFloat(view,propertiesName,values)其中propertiesName包括:
translationX、translationY平移、rotation、rotationX、rotationY圍繞View支點旋轉、alpha透明度、x、y最終位置
| after(Animator anim) | 現有動畫插入到傳入動畫之后執行 |
| after(Animator anim) | 現有動畫延遲指定毫秒后執行 |
| before(Animator anim) | 現有動畫插入到傳入動畫之前 |
| with(Animator anim) | 將現有動畫和傳入動畫同時執行 |
五. Scroller的執行過程
六. View的組成
其中,Activity包含一個Window對象,這個對象是由PhoneWindow來實現的,PhoneWindow將DecorView作為整個應用窗口的根View,DecorView將屏幕分成兩個FrameLayout,一個是TitleView,一個是ContentView。
七. 事件分發機制
寫一段事件分發的偽代碼:
public boolean dispatchTouchEvent(MotionEvent ev){boolean result = false;if(onInterceptTouchEvent(ev)){result = super.onTouchEvent(ev);}else{result = child.disatchTouchEvent(ev);}return result; }點擊事件是從上往下的傳遞規則,當點擊事件產生后,由Activity來處理,傳遞給PhoneWindow,再傳遞給DecorView,最后傳遞給頂層的viewGroup。
如果該ViewGroup的onInterceptTouchEvent方法返回true代表他要攔截這個事件,這個事件就會交給這個view的onTouchEvent來處理,如果返回false則代表他不攔截這個事件,交給他的子元素dispatchTouchEvent來處理,所以,一直到最底層的View,由于View沒有子View,就會調用該View的onTouchEvent方法。
點擊事件的處理是從下而上的,傳到底層的View時,如果這個View不能處理(OnTouchEvent返回false),那么回傳遞給父類,調用他的onTouchEvent()處理,以此類推,直到被處理。
總結
以上是生活随笔為你收集整理的Android总结 之 View系统学习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android总结 之 AsyncTas
- 下一篇: android sina oauth2.