![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android控件架构与自定义控件
zhang31jian
忠实踏实,吃苦耐劳,并能够承担一定的工作压力; 适应能力强,有较强的团队精神,工作积极进取,态度认真,有较强的自学能力.
展开
-
Android控件架构
控件树中,上层控件负责下层控件的测量与绘制,并传递交互事件。树的顶部ViewParent是整棵树的控制核心,所有的交互管理事件都由它来调度分配。每个Activity都包含一个Window对象,在Android中Window对象通常由PhoneWindow来实现,PhoneWindow将DecorView作为整个应用窗口的根View。所有view事件的监听都是有WindowMange原创 2016-08-20 14:42:03 · 312 阅读 · 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 · 418 阅读 · 0 评论 -
View的绘制
测量完当然要绘制了,绘制就要调用onDraw()方法了。重写onDraw()方法,在Canvas上绘制所需要的图形。Canvas就像是个画板,使用画笔Paint就可以在上面作画了。 @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); }在View原创 2016-08-20 16:45:58 · 372 阅读 · 0 评论 -
ViewGroup的测量
当ViewGroup的大小为wrap_content的时候,ViewGroup就需要对子View进行遍历,以便获得所有子View的大小,从而决定自己的大小。而其它模式下则会通过集体的指定值来设置自身大小。ViewGroup在测量时通过遍历子View,调用子View的Measure方法获得每一个子View的测量结果。当子View测量完毕,需要把子View放到合适的位置上,这个过程就是Vi原创 2016-08-20 17:19:13 · 758 阅读 · 0 评论 -
ViewGroup的绘制
ViewGroup通常是不需要绘制的,因为本身就没有需要绘制的东西。如果不是指定ViewGroup的背景色,那么ViewGroup的o'nDraw方法都不会被调用。ViewGroup会使用dispatchDraw()方法绘制子View,其过程是遍历子View,调用子View的绘制方法进行绘制。原创 2016-08-20 17:23:09 · 434 阅读 · 0 评论 -
自定义View
只有站在设计者的角度上,才可以更好的创建出定义View。在自定义View时,我们通常会去重写onDraw()方法来绘制View显示的内容,如果该View还要使用wrap_content属性,那么嗨必须重写onMeasue方法。另外,通过自定义attrs属性还可以设置新的属性配置。View中重要的回调方法:onFinishInflate():从xml加载组建后回调。onSizeCha原创 2016-08-20 18:23:28 · 323 阅读 · 0 评论 -
事件拦截机制
Android为触摸事件封装了一个类:MotionEvent。Activity所拥有的方法:dispatchTouchEvent onTouchEventViewGroup所拥有的方法:dispatchTouchEventonInterceptTouchEventonTouchEventView所拥有的方法:dispatchTouchEvento原创 2016-08-20 23:45:25 · 516 阅读 · 0 评论