Android知識點3
一定會有錢的程式媛發表於2020-11-09
Android知識點3
一.View
- view繪製三大步驟measure、layout、draw
- MeasureSpec是 View 類的一個靜態內部類,用來說明應該如何測量這個View,三種測量模式:UNSPECIFIED,EXACTLY,AT_MOST
- UNSPECIFIED:父容器不對子View有任何限制,子View要多大給多大
EXACTLY:精確模式 View的大小已經確定
AT_MOST:最大尺寸,當控制元件的layout_width或layout_height指定為WRAP_CONTENT時,控制元件大小一般隨著控制元件的子空間或內容進行變化,此時控制元件尺寸只要不超過父控制元件允許的最大尺寸即可
二.事件分發機制
- 事件分發物件----Touch事件
- 4種事件型別:MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP,MotionEvent.ACTION_MOVE,MotionEvent.ACTION_CANCEL
- 事件傳遞順序:Activity----ViewGroup----View
- 事件分發的主要方法:dispatchTouchEvent(),onInterceptTouchEvent()[只有viewgroup有這個方法],onTouchEvent()
三.ArrayList和LinkedList的區別
- ArrayList 的查詢效率比較高,增刪的效率比較差,適用於查詢比較頻繁,增刪較少的元素管理的集合
- LinkedList 的查詢效率低,但是增刪效率很高。適用於增刪的比較頻繁,查詢次數較少的元素管理集合
- ArrayListk擴容呼叫grow函式,每次擴容到原來的1.5倍,呼叫Arrays.copyof方法,即複製原陣列內容到一個新容量的大陣列裡
- 時間複雜度:
隨機訪問 _ 陣列O(1) -----連結串列O(N)
頭部插入/刪除 _ 陣列O(N)-----連結串列O(1)
尾部插入/刪除 _ 陣列O(1)-----連結串列O(1)