自定义控件(3):view的绘制原理

自定义UI控件,需继承 View类或View的子类,并重载View类中的一些方法,不必都重载,但至少要重载onDraw( )。

类别 方法 描述
Creation Constructors  
onFinishInflate() 当View和它的所有子对象从XML中导入之后,调用此方法
Layout onMeasure(int, int) View会调用此方法,来确认自己及所有子对象的大小
onLayout(boolean, int, int, int, int, int, int) 当View要为所有子对象分配大小和位置时,调用此方法
onSizeChanged(int, int, int, int) 当View大小改变时,调用此方法
Drawing onDraw(Canvas) 当View要绘制它的内容时,调用此方法
Event processing onKeyDown(int, KeyEvent) 当一个新的按键事件发生时,调用此方法
onKeyUp(int, KeyEvent) 当一个按键释放事件发生时,调用此方法
onMotionEvent(MotionEvent) 当一个动作事件(如触摸)发生时,调用此方法
Focus onFocusChanged(boolean, int) 当View获得或失去焦点时,调用此方法
Attaching onAttachedToWindow() 当View附加到一个窗体上时,调用此方法
onDetachedFromWindow() 当View离开它的窗体时,调用此方法

View的绘制过程:onAttachedToWindow -> onMeasrue -> onSizeChanged -> onLayout -> onDraw

Activity中绘制View:通过setContentView( ) 传入层次树的根节点引用 -> Activity被激活并获得焦点 -> 请求根节点计算并绘制树 -> ViewGroup结合自己的有效空间和子View要求的LayoutParams来布局子view,并调用子view的Draw( )方法来绘制之
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值