zoukankan      html  css  js  c++  java
  • view的绘制原理

    转:http://blog.csdn.net/berber78/article/details/42069301

    自定义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( )方法来绘制之
  • 相关阅读:
    MySQL客户端执行外部sql文件命令
    Java nextInt()函数
    JSP
    托管和非托管的区别。
    FTP软件Filezilla出现“读取目录列表失败”的解决办法
    Fiddler 抓包工具总结
    wampserver:Could not execute menu item.
    重装系统怎么恢复wampserver数据
    同时安装Xcode6和Xcode7导致出现N多UUID 模拟器解决办法
    打印沙漏
  • 原文地址:https://www.cnblogs.com/xh0102/p/5252849.html
Copyright © 2011-2022 走看看