View measure
来源:互联网 发布:比较编程语言书籍 编辑:程序博客网 时间:2024/05/16 01:28
ViewRootImpl类的performTraversals()中组装了初始的MeasureSpec
int childWidthMeasureSpec = getRootMeasureSpec(mWidth, lp.width);int childHeightMeasureSpec = getRootMeasureSpec(mHeight, lp.height);……performMeasure();……performLayout();……performDraw();
getRootMeasureSpec():
/** * Figures out the measure spec for the root view in a window based on it's * layout params. * * @param windowSize The available width or height of the window * * @param rootDimension The layout params for one dimension (width or height) of the window. * * @return The measure spec to use to measure the root view. */private static int getRootMeasureSpec(int windowSize, int rootDimension) { int measureSpec; switch (rootDimension) { case ViewGroup.LayoutParams.MATCH_PARENT: // Window can't resize. Force root view to be windowSize. measureSpec = MeasureSpec.makeMeasureSpec(windowSize, MeasureSpec.EXACTLY); break; case ViewGroup.LayoutParams.WRAP_CONTENT: // Window can resize. Set max size for root view. measureSpec = MeasureSpec.makeMeasureSpec(windowSize, MeasureSpec.AT_MOST); break; default: // Window wants to be an exact size. Force root view to be that size. measureSpec = MeasureSpec.makeMeasureSpec(rootDimension, MeasureSpec.EXACTLY); break; } return measureSpec;}
performMeasure()会调用View的measure():
private void performMeasure(int childWidthMeasureSpec, int childHeightMeasureSpec) { Trace.traceBegin(Trace.TRACE_TAG_VIEW, "measure"); try { mView.measure(childWidthMeasureSpec, childHeightMeasureSpec); } finally { Trace.traceEnd(Trace.TRACE_TAG_VIEW); }}
performLayout()会调用View的layout(),performDraw()会调用drawSoftware(),drawSoftware()中调用到mView.draw(canvas);
draw()中调用到onDraw()
阅读全文
0 0
- View.measure
- View measure
- android View.measure
- Android View measure过程
- View容器 measure 流程
- view measure详解
- View 的 measure 方法
- view measure 过程
- android View.measure()初探
- view 的 measure方法
- View的measure过程
- Android View的Measure
- View 的 Measure 过程
- 自定义View Measure过程
- 自定义View Measure过程
- 自定义View Measure过程
- View的Measure流程
- 自定义 view 一 (measure)
- 136. Single Number
- 人脸对齐概述及研究进展
- 如何知道脚本中正在执行的SQL语句
- tensorflow API简单整理(三、控制流)
- solr--创建核心core
- View measure
- java内存管理
- Hadoop HDFS环境搭建
- 抠图技巧
- 关于VideoPlayer以及使用VUforia播放视频的见解
- 卸载Centos自带的JDK
- sql2java:一次外科手术式的bug修复过程
- 文件名过长/文件夹路径过长,无法删除文件夹/文件的解决办法
- 【iOS】第01讲 UIView/UIViewController/UIApplication详解