Android知识点3
一.View
- view绘制三大步骤measure、layout、draw
- MeasureSpec是 View 类的一个静态内部类,用来说明应该如何测量这个View,三种测量模式:UNSPECIFIED,EXACTLY,AT_MOST,用高两位表示mode,低30位表示size
- 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)