zoukankan      html  css  js  c++  java
  • ViewGroup measure layout

    ViewGroup的绘图流程:ViewGroup绘制包括两个步骤:1.measure 2.layout

      在两个步骤中分别调用回调函数:1.onMeasure()   2.onLayout()

      1.onMeasure() 在这个函数中,ViewGroup会接受childView的请求的大小,然后通过childView的 measure(newWidthMeasureSpec, heightMeasureSpec)函数存储到childView中,以便childView的getMeasuredWidth() andgetMeasuredHeight() 的值可以被后续工作得到。

      2.onLayout() 在这个函数中,ViewGroup会拿到childView的getMeasuredWidth() andgetMeasuredHeight(),用来布局所有的childView。

      3.View.MeasureSpec 与 LayoutParams 这两个类,是ViewGroup与childView协商大小用的。其中,View.MeasureSpec是ViewGroup用来部署 childView用的, LayoutParams是childView告诉ViewGroup 我需要多大的地方。

      4.在View 的onMeasure的最后要调用setMeasuredDimension()这个方法存储View的大小,这个方法决定了当前View的大小。


     

            具体详见Android官方文档 dev guide->User Interface->How Android Draws Views

    二 View,ViewGroup的手势监听顺序与使用

         View的手势监听相关回调函数:onTouchEvent()

         ViewGroup的手势监听相关回调函数:onTouchEvent(),onInterceptTouchEvent()

         1.这两个回调函数都会返回一个boolean变量,表示是否消费了此手势。如果消费了,返回true,如果未消费,返回false。

         2.当用户触摸一下屏幕,产生手势MotionEvent,

    ViewGroup的onInterceptTouchEvent()会接受此MotionEvent。如果此回调函数返回true,则表示此 ViewGroup消费了此手势,不想再让他的childView去处理,childView的 onTouchEvent()便不会再接受此手势,同时此ViewGroup的onTouchEvent()会接受此手势。 如果此回调函数返回 false,则表示此ViewGroup未消费了此手势,想让他的childView去处理,childView的  onTouchEvent()接受此手势,同时此ViewGroup的onTouchEvent()不会接受此手势。

    转http://blog.csdn.net/starfeng11/article/details/7028066

  • 相关阅读:
    poj3032
    poj2603
    poj2019
    poj2369
    AVI 录像功能压缩算法设置
    陆其明的新书《脚本驱动的应用软件开发方法与实践》
    c# 动态编译
    !!!分享:把bmp格式的图片转化为AVI格式的视频操作的封装类其中对于AVI API的函数的使用较为完整
    视频文件格式和视频编码方式
    activex 控件的id 定义位置+使用ocx控件的客户端程序中对控件定义的文件中控件id定义的位置
  • 原文地址:https://www.cnblogs.com/jiezzy/p/2601432.html
Copyright © 2011-2022 走看看