View容器 measure 流程

Android View的绘制流程三部曲 如果我们用面向对象的思维方式来思考,就会觉的View的绘制机制是很合理,很科学的。我们要在一张纸上画一幅画,首先我们要测量一下这幅画有多大吧,然后确定在纸的哪个地方画会显得比较美观,最后才是用画笔工具将画绘制在纸上。 在Android中也是一样的。View的绘制流程主要是指measure,layout,draw这三步,即测量,布局,绘制。首先是要测量View的宽高,然后布局确定在父容器中的位置坐标,最后才是绘制 阅读详情

FrameLayout

onMeasure()

1.    measureChildWithMargins() ViewGroup.java
1.1   getChildMeasureSpec()     ViewGroup.java
1.2   child.measure()  View.java
1.2.1 chlid.onMeasure()        

2.    resolveSizeAndState()     View.java
3.    setMeasuredDimension()    View.java

LinearLayout

onMeasure()

1.    measureChildWithMargins() ViewGroup.java
1.1   getChildMeasureSpec()     ViewGroup.java
1.2   child.measure()  View.java
1.2.1 chlid.onMeasure()        

2.    resolveSizeAndState()     View.java
3.    setMeasuredDimension()    View.java

 

RelateveLayout

onMeasure()

1.    measureChild()            RelateveLayout.java
1.1   getChildMeasureSpec()     RelateveLayout.java
1.2   child.measure()  View.java
1.2.1 chlid.onMeasure()        

2.    resolveSizeAndState()    View.java
3.    setMeasuredDimension()    View.java

 

AbsoluteLayout

onMeasure()

1.    measureChildren()         ViewGroup.java
1.1   getChildMeasureSpec()     ViewGroup.java
1.2   child.measure()  View.java
1.2.1 chlid.onMeasure()        

2.    resolveSizeAndState()    View.java
3.    setMeasuredDimension()    View.java


 

 

View和ViewGroup,View绘制流程解析 View是绘制在屏幕上的用户能与之交互的一个对象,它代表了用户界面组件的一块可绘制的空间块,每一个空间块在屏幕上占据一个长方 形区域。View 的绘制流程是从 ViewRootImpl 的 performTraversals() 方法开始的,它经过测量(measure)、放置(layout)和绘制(draw)三个过程才能把一个 View 绘制出来,measure() 方法用于测量 View 的宽高,layout() 用于确定 View 在父容器中的放置位置,draw() 负责做具体的绘制操作。 阅读详情

相关推荐

View的Measure过程解析

背景《Activity.setContentView()内部实现解析》中分析了View是如何被添加到DecorView中,添加到DecorView后View对用户来说还是不可见的。View在呈现给用户前,它需要经过Measure -> Layout -> Draw三个步骤。本文将从DecorView的源码开始,分析View的Measure过程。预备知识–测量概述View在呈现出来前,需要确定的第一个

小包的博客 562

Uniapp:view容器(容器布局)

Uniapp:view容器(容器布局)

MMF博客园 1836

详解View的工作原理

View的工作原理 View的流程主要包括测量流程(measure)、布局流程(layout)、绘制流程(draw)。 当然除了View的这三大流程外,我们也应该了解一些View的基础概念以及View是怎么一步步绘制出来的。 我们先看下Android在UI方面的层级关系。 ViewRoot和DecorView ViewRoot是ViewRootImpl类的实现,它是连接WindowManager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成的。 当Activity对象被创建完

AthonyDavis的博客 463

java实现Fmeasure计算_聚类效果评测-Fmeasure和Accuracy及其Matlab实现

聚类结果的好坏,有很多种指标,其中F-Measue即F值是常用的一种,其中包括precision(查准率或者准确率)和recall(查全率或者召回率)。F-Measue是信息检索中常用的评价标准。F-Measue的公式如下:\[{{F}_{\beta }}=\frac{\left( {{\beta }^{2}}+1 \right)P\cdot R}{{{\beta }^{2}}\cdot P+R}...

weixin_29775447的博客 646

面试一问:关于 View测量、布局及绘制原理

前言 2020年2月22.距离新年已经过去了大半个月了,依旧的出不了门,依旧的躲在家里一日三餐,依旧的在家办公,也不知道下周会不会复工,再次汇总手中各种保存整理的笔记 相关内容后续GitHub更新,想冲击金三银四的小伙伴可以找找看看,欢迎star (顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找) https://github.com/xiangjiana/Android-MS ...

Android_SE的博客 792

Java Measure-开源

度量对象Java库的面向对象标准,用于单位转换,计算,查找等

微信小程序View视图容器组件

完整微信小程序(Java后端) 技术贴目录清单页面(必看) 微信小程序框架为开发者提供了一系列完备的UI组件,方便开发者快速构建小程序UI界面。借助这些UI组件开发者可以像搭积木一样快速地拼装出一栋房子的样子,这非常类似于当下建筑行业比较流行的装配式建筑,UI组件就好比预先定制好的建筑构件,只需要按照设计图纸即可快速组装各个组件,便捷迅速地完成界面布局和渲染工作。 下方思维导图是小程序的组件,重点掌握核心组件和重点组件,了解扩展; 视图容器 view 视图容器(View)是小程序框架组件中最常见的基础组件

java1234的博客 3896

多GPU时代的虚拟内存革命:CUDA VMM API的跨设备协同设计哲学

本文深入探讨了NVIDIA CUDA VMM API在多GPU系统中的虚拟内存管理革命,解决了传统Peer Access的显存碎片化和同步开销问题。通过地址-内存解耦、按需映射和精细权限控制,VMM API为分布式训练提供了高效的内存协同方案,显著提升大模型训练性能。

weixin_29251337的博客 534

Measure()与onMeasure()

1、 封装了父布局传递给子布局的布局要求。 MeasureSpec可以表示一个宽,也可以表示一个高。 MeasureSpec是由大小和模式组成的。 2、 Exactly:父view已经检测到了子view所需要的精确大小,在这种模式下,子view的大小就是刚才所说的size AT_MOST:父容器还没有检测到子view所需要的大小,但是它指定了一个

nicolelili1的专栏 4174

保姆级教程:不用看古早代码,5分钟搞懂泛微ecology9附件存储与接口调用

本文详细解析了泛微ecology9附件存储与接口调用的核心原理,提供从基础概念到实战操作的完整指南。通过拆解文档化附件设计理念、解析RESTful接口参数,并给出Python代码示例,帮助开发者快速掌握附件上传与业务集成的关键技巧,提升二次开发效率。

weixin_28688385的博客 349

Windows 10 本地开发环境:用 ShardingSphere-Proxy 5.4.1 快速搭建 MySQL 分库分表测试环境

本文详细介绍了在Windows 10系统中使用ShardingSphere-Proxy 5.4.1快速搭建MySQL分库分表测试环境的完整教程。从环境准备、MySQL配置到ShardingSphere-Proxy的核心设置,逐步指导开发者完成本地开发环境的搭建,并提供了分片策略详解和常见问题排查方法,帮助开发者高效验证分库分表功能。

weixin_28366053的博客 214

Android View框架总结(四)View布局流程之Measure

View树的measure流程 View的measures时序图 View布局流程之measure measure过程 View的measure过程 ViewGroup的measure过程 FrameLayout的measure过程 View树的measure流程图如下:View树的measure时序图:View的measure过程View的measure方法如下:View.java 这是个f

欢迎关注公众号:【码农突围】,公号后台回复9999,可以获取一份500页的LeetCode刷题笔记。 5272

Wio-LR1121多频段LoRa模块技术解析与应用实践

LoRa技术作为低功耗广域物联网(LPWAN)的核心通信方案,通过独特的扩频调制技术实现远距离传输与强抗干扰能力。其工作原理基于CSS(Chirp Spread Spectrum)调制,支持动态调整扩频因子(SF)和带宽(BW)来平衡传输距离与数据速率。Wio-LR1121模块作为Semtech LR1121芯片的载体,创新性地整合了sub-GHz、S-Band和2.4GHz多频段支持,配合仅1.35μA的睡眠电流,为跨境物联网部署提供了硬件基础。在智慧农业、工业监测等场景中,开发者可通过SPI接口快速集成

weixin_33742618的博客 416

View绘制流程

ViewRootImpl.performTraversals流程:measure、layout、draw流程:Measure:①单一View:measure()getDefaultSize() 计算View的宽/高值setMeasuredDimension存储测量后的View宽/高measure()需要重写onMeasure,ViewGroup没有定义测量的具体过程,是一个抽象类,其测量过程的onMeasure方法需要各个子类去实现,遍历测量ViewGroup中所有的View。

zy_lip的博客 489

Windows C语言编程:Beep API实现蜂鸣器原理与实战

如果你在 Windows 上写过 C 语言程序,想给程序加个简单的提示音,第一个想到的可能是 printf("\a") 。这个转义字符确实能在某些终端里发出“嘀”的一声,但它太原始、太不可控了,而且很多时候根本没声音。那么,有没有一种更“Windows”、更可控、更专业的方法来让你的程序“说话”呢? 答案是肯定的,而且它比你想象的要强大和复杂。Windows 提供了一个名为 Beep 的 API 函数,专门用于生成蜂鸣声。你可能觉得这功能太简单,甚至有点过时——不就是让电脑“哔”一声吗?但恰恰是这个看似简单

weixin_34109408的博客 394

车联网ECU、TSP与TBOX通信流程

对比维度ECU(电子控制单元)BMS(电池管理系统)应用场景传统燃油车 + 新能源汽车仅限新能源汽车核心作用控制整车各系统运行管理动力电池安全与寿命车联网角色数据采集与传输的核心载体提供电池相关的核心数据。

tecoes的博客 1230

Android View 的绘制流程 转发

本文转自:https://www.cnblogs.com/jycboy/p/6219915.html 概述 本篇文章会从源码(基于Android 6.0)角度分析Android中View的绘制流程,侧重于对整体流程的分析,对一些难以理解的点加以重点阐述,目的是把View绘制的整个流程把握好,而对于特定实现细节则可以日后再对相应源码进行研读。 在进行实际的分析之前,我们先来看下面这张图: ...

龚礼鹏的博客 353

基于 STM32 与压电薄膜的婴儿睡眠呼吸暂停监测床垫设计

本设计以 STM32F103C8T6 为主控,结合 PVDF 压电薄膜传感器,通过模拟信号调理与数字峰值检测算法,实现了对婴儿睡眠呼吸状态的实时监测。系统结构简单、成本低廉、无接触无束缚,当检测到 20 秒以上无呼吸信号时自动触发声光报警,可有效降低婴儿睡眠呼吸暂停带来的安全风险。后续可扩展蓝牙 / WiFi 模块,将报警信息推送至家长手机端,实现远程监护。

weixin_42300449的博客 148

View 绘制流程

View 触摸机制(事件分发)View 绘制流程

Android 685

基于 ESP32 的宿舍洗浴热水余量预测与智能排队提醒系统设计与实现

本系统以 ESP32 为主控核心,通过超声波液位传感器实时监测储热水箱剩余水量,配合 DS18B20 温度传感器采集水温数据,建立热水余量预测模型估算可用洗浴时长;同时通过红外人体传感器统计浴室排队人数,结合人均洗浴时长计算预计等待时间,并通过 OLED 屏本地显示 + WiFi Web 服务器远程推送的方式实现排队提醒功能。

weixin_42300449的博客 45

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

android view 绘制流程

@view 绘制流程 DecorView是一个应用窗口的根容器,它本质上是一个FrameLayout。DecorView有唯一一个子View,它是一个垂直LinearLayout,包含两个子元素,一个是TitleView(ActionBar的容器),另一个是ContentView(窗口内容的容器)。关于ContentView,它是一个FrameLayout(android.R.id.conten...

w517272812的博客 174

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

源码分析UI绘制三部曲之measure

众所周知,UI绘制三部曲是measure、layout、draw 本篇我们分析View#measure public final void measure(int widthMeasureSpec, int heightMeasureSpec) { ... final boolean matchesSpecSize = getMeasuredWidth() == M...

isJoker的博客 283

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Android view 的绘制流程

Android UI 管理系统的层级关系 DecorView 是应用窗口的根容器,本质还是一个FrameLayout,DecorView 有唯一一个子view-LinearLayout 垂直布局,一个是TitleView,一个是ContentView(FrameLayout),平时用se...

chuijian3755的博客 156

Android 自定义View知识点

自定义View需要了解的知识点 自定义View我们需要了解View的绘制机制和ViewGroup的绘制机制,了解之后我们就可以在系统预留的方法里进行自定义View的工作了。 1、MeasureSpec 模式 说明 UNSPECIFIED 父容器不对View有任何限制,给它想要的任何尺寸。一般用于系统内部,表示一种测量状态。 EXACTLY 父容器已经检测出view的精确大小,这...

木寸~ 255

android 克隆view对象,Android View 的工作原理(包含对 DecorView 和 ViewRoot 的简单介绍)...

什么是 View ?View 是 Android 中所有控件的基类,View 可以是单个控件,也可以是由多个控件组成的一组控件。ViewGroup 里面可以有子 View,子 View 里面也可以有 ViewGroup。什么是 ViewRoot、DecorView ?View 有三大流程,measure、layout、draw,了解并熟悉其三大流程对于我们进行 Android 开发有着极其重要的作...

weixin_35794185的博客 1137

Android View的绘制流程

View的绘制和事件处理是两个重要的主题,上一篇《图解 Android事件分发机制》已经把事件的分发机制讲得比较详细了,这一篇是针对View的绘制,View的绘制如果你有所了解,基本分为measure、layout、draw 过程,其中比较难理解就是measure过程,所以本篇文章大幅笔地分析measure过程,相对讲得比较详细,文章也比较长,如果你对View的绘制还不是很懂,对measure过程掌握得不是很深刻,那么耐心点,看完这篇文章,相信你会有所收获的。 1、Measure过程# 对于测量我们来说

songzi1228的博客 195
上一篇: 数据库设计的范式
下一篇: android中@TargetApi的作用
javalive09
博客等级 码龄16年 43粉丝 281原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值