iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android下如何理解onMeasure,onLayout的过程
  • 105
分享到

Android下如何理解onMeasure,onLayout的过程

Android 2022-06-06 12:06:10 105人浏览 薄情痞子
摘要

  在Android中view如何完成绘制这个过程介绍了很多,但是很多理论化的东西,近重新整理一下,通俗的讲解一下。   View绘制过程好比你向银行贷款,   在

  在Android中view如何完成绘制这个过程介绍了很多,但是很多理论化的东西,近重新整理一下,通俗的讲解一下。

  View绘制过程好比你向银行贷款,

  在执行onMeasure的时候,好比银行告诉你大概贷款额度有多少?你根据自己的需求,进行各方面的计算,计算出一个自己大概需要的金额,然后告诉询问需要多少贷款。贷款额度好比显示空间大小。

  实际代码执行过程是这样

  onMeasure(int widthMeasureSpec, int heightMeasureSpec),其中widthMeasureSpec和heightMeasureSpec是银行告诉的大致额度。然后内部计算完成后,通过setMeasuredDimension(width, height)将实际需要的大小返回给父view。

  即onMeasure用来确定确定view显示的大小(通过调用子view的measure,来确定子view的大小)

  在执行onLayout的时候,好比银行收到你的贷款请求后,根据自身储备的情况及你的资质情况,批发了贷款的额度及领取的时间。领取的时间好比显示的起始位置,额度好比是显示空间的大小。

  实际代码执行过程是这样的

  onLayout(boolean changed, int left, int top, int right, int bottom)-确定view在父类中的显示位置,通过对子view的位置计算,通过调用子view的layout将在父类中的位置设置给子view。

  在执行dispatchDraw的时候,好比你去银行真正获取贷款,拿到你需要的钱了,签署各类合同和手续,完成你的贷款过程。

  在dispatchDraw的过程是在指定的空间内绘制你需要绘制的内容,可以通过drawChild实现内部子view的绘制。


--结束END--

本文标题: Android下如何理解onMeasure,onLayout的过程

本文链接: https://www.lsjlt.com/news/28704.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解VBScript过程
    本篇内容介绍了“如何理解VBScript过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!VBScript 过程在 VBScript 中,过...
    99+
    2023-06-08
  • android studio2.3如何编译动态库的过程详解
    前言最近在工作中需要编译android下的动态库,本以为是一件简单的事,没想到因为工具,以及google本身被墙的原因,折腾了好久。在windows外的平台搞事情,寿命都得缩短。过程如下一种方案是用eclipse+ndk+adt插件,总之是...
    99+
    2023-05-30
    android studio 编译
  • 如何理解PHP程序执行的过程原理
    目录概述加载php.ini配置加载php内置扩展概述 Web环境我们假设为Apache。在编译PHP的时候,为了能够让Apache支持PHP,我们会生成一个mod_php5.so的模...
    99+
    2024-04-02
  • 如何理解redo的内部过程与lgwr
    如何理解redo的内部过程与lgwr,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Oracle采用混合日志记录模式,以数据块为...
    99+
    2024-04-02
  • 如何理解C++多态的实现过程
    如何理解C++多态的实现过程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。多态描述的是使用基类的指针或引用操作多个类型的能力。我们知道,子类的指针是可以隐式转化为父类的,所...
    99+
    2023-06-17
  • 如何理解MySQL的存储过程与光标
    今天就跟大家聊聊有关如何理解MySQL的存储过程与光标,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL的存储过程与光标一、存储过程T-sql...
    99+
    2024-04-02
  • 如何理解Mesos的Framework与Executor注册过程
    如何理解Mesos的Framework与Executor注册过程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。以Hadoop框架为例,介绍...
    99+
    2024-04-02
  • 如何理解Spring AOP原理以及SpringMVC过程
    这篇文章给大家介绍如何理解Spring AOP原理以及SpringMVC过程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Spring AOP 原理简单说说 AOP 的设计:每个 Bean 都会被 JDK 或者 Cgl...
    99+
    2023-06-17
  • linux下文件的解压过程
    这篇文章主要介绍“linux下文件的解压过程”,在日常操作中,相信很多人在linux下文件的解压过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux下文件的解压过程”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-06
  • Linux下如何通过nudoku解决谜题
    小编给大家分享一下Linux下如何通过nudoku解决谜题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!数独是简单的逻辑游戏,它可以在任何地方玩,包括在 Linux 终端中。欢迎回到我们为期 24 天的 Linux 命令行...
    99+
    2023-06-27
  • 详解Android中的ActivityThread和APP启动过程
    目录ActiviryThreadActivityThread的初始化主线程Looper的初始化主线程Handler的初始化ApplicationThread及Activity的创建和...
    99+
    2024-04-02
  • 详解Android壁纸服务的启动过程
    壁纸基础 android中的壁纸分为动态壁纸和静态壁纸两种,两种类型的壁纸都以Service的类型运行在系统后台。 静态壁纸:仅以图片的形式进行展示对于静态壁纸,可以使用W...
    99+
    2024-04-02
  • vue下如何处理鼠标划过事件
    这篇文章主要介绍“vue下如何处理鼠标划过事件”,在日常操作中,相信很多人在vue下如何处理鼠标划过事件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue下如何处理鼠标划过事件”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-04
  • 如何理解Linux下的命令行编程工具Awk
    这篇文章主要介绍“如何理解Linux下的命令行编程工具Awk”,在日常操作中,相信很多人在如何理解Linux下的命令行编程工具Awk问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解Linux下的命令行编...
    99+
    2023-06-13
  • 如何理解DOS下的多媒体
    这篇文章主要介绍“如何理解DOS下的多媒体”,在日常操作中,相信很多人在如何理解DOS下的多媒体问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何理解DOS下的多媒体”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-10
  • 如何理解Linux下的Xargs命令
    这期内容当中小编将会给大家带来有关如何理解Linux下的Xargs命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。xargs 常常被大家忽略的一个命令,对它的一些用法很多人可能不熟悉,其实它是一个功能强...
    99+
    2023-06-15
  • 详解android是如何管理内存的
    目录前言Java Heap进程内存分配内存不足管理GC 垃圾回收内核交换守护进程低内存终止守护进程最后前言 很高兴遇见你~ 内存优化一直是 Android 开发中的一个非常重要的话...
    99+
    2024-04-02
  • 如何理解JDK15类加载、验证、准备过程
    本篇内容主要讲解“如何理解JDK15类加载、验证、准备过程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何理解JDK15类加载、验证、准备过程”吧! ...
    99+
    2024-04-02
  • 如何理解Android编程开发中的性能优化技巧
    这篇文章给大家介绍如何理解Android编程开发中的性能优化技巧,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。性能优化正常的流程是,发现自己某方面与竞品差距比较大,比如UI渲染速度,需要通过某种方式去发现为什么比别人慢...
    99+
    2023-06-17
  • PostgreSQL中如何监控VACUUM的处理过程
    这篇文章主要讲解了“PostgreSQL中如何监控VACUUM的处理过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PostgreSQL中如何监控VACU...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作