
Android控件架构与自定义控件
zhang31jian
忠实踏实,吃苦耐劳,并能够承担一定的工作压力; 适应能力强,有较强的团队精神,工作积极进取,态度认真,有较强的自学能力.
展开
-
Android控件架构
控件树中,上层控件负责下层控件的测量与绘制,并传递交互事件。树的顶部ViewParent是整棵树的控制核心,所有的交互管理事件都由它来调度分配。 每个Activity都包含一个Window对象,在Android中Window对象通常由PhoneWindow来实现,PhoneWindow将DecorView作为整个应用窗口的根View。 所有view事件的监听都是有WindowMange原创 2016-08-20 14:42:03 · 339 阅读 · 0 评论 -
View的测量
1、MeasureSpec类 32位的int值,高2位时测量模式,低30位时测量大小。 2、模式简介 EXACTLY:精确值模式,layout_width、layout_height指定具体值或者match_parent时。 AT_MOST:最大值模式,layout_width、layout_height指定为wrap_content时,控件大小随着子控件或内容的变化而变化,此时控件的大小原创 2016-08-20 15:41:09 · 451 阅读 · 0 评论 -
View的绘制
测量完当然要绘制了,绘制就要调用onDraw()方法了。 重写onDraw()方法,在Canvas上绘制所需要的图形。 Canvas就像是个画板,使用画笔Paint就可以在上面作画了。 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); } 在View原创 2016-08-20 16:45:58 · 395 阅读 · 0 评论 -
ViewGroup的测量
当ViewGroup的大小为wrap_content的时候,ViewGroup就需要对子View进行遍历,以便获得所有子View的大小,从而决定自己的大小。而其它模式下则会通过集体的指定值来设置自身大小。 ViewGroup在测量时通过遍历子View,调用子View的Measure方法获得每一个子View的测量结果。 当子View测量完毕,需要把子View放到合适的位置上,这个过程就是Vi原创 2016-08-20 17:19:13 · 798 阅读 · 0 评论 -
ViewGroup的绘制
ViewGroup通常是不需要绘制的,因为本身就没有需要绘制的东西。 如果不是指定ViewGroup的背景色,那么ViewGroup的o'nDraw方法都不会被调用。 ViewGroup会使用dispatchDraw()方法绘制子View,其过程是遍历子View,调用子View的绘制方法进行绘制。原创 2016-08-20 17:23:09 · 473 阅读 · 0 评论 -
自定义View
只有站在设计者的角度上,才可以更好的创建出定义View。 在自定义View时,我们通常会去重写onDraw()方法来绘制View显示的内容,如果该View还要使用wrap_content属性,那么嗨必须重写onMeasue方法。另外,通过自定义attrs属性还可以设置新的属性配置。 View中重要的回调方法: onFinishInflate():从xml加载组建后回调。 onSizeCha原创 2016-08-20 18:23:28 · 343 阅读 · 0 评论 -
事件拦截机制
Android为触摸事件封装了一个类:MotionEvent。 Activity所拥有的方法: dispatchTouchEvent onTouchEvent ViewGroup所拥有的方法: dispatchTouchEvent onInterceptTouchEvent onTouchEvent View所拥有的方法: dispatchTouchEvent o原创 2016-08-20 23:45:25 · 554 阅读 · 0 评论