Android View - 控件架构

android View 之Android控件架构 1、 Android控件架构 Android控件的层次是由android.view.   View(视图类)类呈现出最基本的UI架构;一个视图 占据一个屏幕的矩形区域,并负责事件绘画与事件的处理。View是Widgest的基类,常用来创建与用户交互的图像界面(GUI)。视图有众多的拓展者,包括文本视图(TextView),图像视图(ImageView),进度条(ProgressBar),视图组 阅读详情

控件分两种:View和ViewGroup。View成为子控件,ViewGroup称为父控件,其实ViewGroup也是继承View实现的。View和ViewGroup有机组合在一起,叫控件树。Like This :

每棵控件树都是以ViewParent对象开始,ViewParent是控制控件树的核心,所有View的交互事件都由它调度和分配。上图还有个说明,调用findViewById方法,以深度遍历找出对应的View或者ViewGroup元素。

我们再来看看Activity的View结构是怎么样的:

每个Activity都有一个Window对象,这里由PhoneWindow实现。DecorView是Window的根视图,一般是LinearLayout(还得根据我们设置主题和Android版本而定)。上面是标题栏,下面是内容栏。内容栏ContentView是一个id为android.R.id.content的FrameLayout,我们在Activity调用setContentView(R.layout.xxx)就是把R.layout.xxx添加到ContentView中。我们也可以根据android.R.id.content获取到ContentView。

我们来看看控件树的绘制流程。

从ViewRoot的performTraversals方法开始,经过measure,layout,draw3步才把View绘制完成。
measure: 用于测量View的宽和高。
layout:用于确定View在ViewGroup的位置。
draw: 用于绘制View,显示View的样子。

保姆级教程:在Windows上用Docker Desktop一键部署Dify 1.0.1(附国内镜像加速) 本文提供在Windows系统上使用Docker Desktop快速部署Dify 1.0.1的详细教程,包括环境准备、国内镜像加速配置、Dify容器部署实战及常见问题解决方案。特别针对国内用户优化,确保快速完成部署并提升开发效率。 阅读详情

相关推荐

ESP32-IDF HTTP服务器实战:从零搭建Web控制界面

本文详细介绍了如何在ESP32平台上使用ESP-IDF框架从零搭建HTTP服务器,并创建Web控制界面。内容涵盖环境配置、服务器基础设置、Web页面处理、GPIO控制接口实现及AJAX异步请求处理,帮助开发者快速掌握物联网设备Web控制开发。

efc123456的博客 1063

android view的parent,Android中View绘制知识点,父视图高为match_parent,子视图的高为wrap_content,那么子视图高如何显示?...

新浪乐居有道面试题"如果父视图的高设置为wrap_content,它的子View高也是wrap_content,那么子View的高度如何显示?"这种问题就是考察你对源码的熟悉度。我们直接查看View工作原理源码,梳理出三个方法如下,都是View类中的方法。onMeasure()方法getSuggestMinimumWidth()方法getDefaultSize()方法onMeasure()方法测量...

weixin_33504324的博客 2859

软件项目管理期末复习(看这一篇就够了)

软件项目管理考试复习 🔶🔶🔶🔶🔶加了🔶的是考点 第一章软件项目管理概述 1.1.1项目及其特征 项目定义:🔶 项目就是为了创造一个唯一的产品或提供一个唯一的服务而进行的临时性的努力; 是以一套独特而互相联系的任务为前提,有效地利用资源,在一段时间内满足一系列特定目标的多项相关工作的总称。 日常运作和项目的区别: 项目是一次性的,而日常运作是重复进行的。 项目是以目标为导向的,日常运作是通过效率和有效性体现的。 项目是通过项目经理及其团队工作完成的,日常运作是职能式的线性管理。 项目存在大量的变更管理,

qq_50886857的博客 3万+

android子view获取父布局,Android获取布局父ID(Android get layout parent id)

Android获取布局父ID(Android get layout parent id)我想知道View和ViewParent有什么区别? 我想获取ImageView父级的Id,但我不能这样做:myImageView.getParent().getId();那么有另一种获得此ID的方法吗?I would like to know what is the difference between Vie...

weixin_39561577的博客 5323

Robocopy 参数进阶:/MIR 镜像同步与 /PURGE 删除操作的风险规避指南

本文深入解析Robocopy的/MIR镜像同步与/PURGE删除操作的高级用法及风险规避策略。通过实际案例和四重防护机制,指导用户安全实现目录同步,避免数据丢失风险,特别适用于远程主机间的数据复制与备份场景。

weixin_33462927的博客 356

【MDC开发者实战】多传感器融合算法在自动驾驶中的配置与优化

本文详细介绍了华为MDC平台在自动驾驶中多传感器融合算法的配置与优化实践。通过前融合与后融合技术,结合摄像头、激光雷达和毫米波雷达的数据,提升感知精度与可靠性。文章还分享了ARXML配置、标定技巧、算法调优及性能优化等实战经验,帮助开发者高效实现自动驾驶系统的传感器融合。

weixin_29214199的博客 515

android View与ViewGroup研究

View 有一个属性为 mParent(ViewParent型) View 有一个属性为 mLayoutParams(ViewGroup.LayoutParams型) 无论是 mParent还是mLayoutParams 都是在系统在解析 XML 时自动进行初始化的. ViewGroup 有一个 View[] mChildren 数组,用来保存自己的孩子;ViewGroup实现了View

我的专栏 4528

用V E S C 6-M K V I 第六代调速控制器给VESC电调刷固件

文章摘要:本文介绍了一款先进的电机控制器,具备多项创新技术。核心亮点包括三相电流/电压检测、四象限无缝运行、多模式兼容等先进电机控制技术,以及智能感知与安全保护、高效能电源管理、多样化连接与扩展功能。此外,该控制器支持实时数据监测与用户交互,具备开源生态和工业级可靠性,适用于电动载具、机器人及工业领域。用户需注意散热要求和兼容性提示,可通过VESC-Tool软件进行灵活配置。产品可在常竹科技淘宝店购买,并加入技术交流群获取支持。

2403_89422757的博客 1364

Android的View和ViewGroup分析

1. 概念 Android中的View与我们以前理解的“视图”不同。在Android中,View比视图具有更广的含义,它包含了用户交互和显示,更像Windows操作系统中的window。 ViewGroup是View的子类,所以它也具有View的特性,但它主要用来充当View的容器,将其中的View视作自己的孩子,对它的子View进行管理,当然它的孩子也可以是ViewGroup类型。

subaohao的专栏 585

人形机器人电路板和算法分析

人形机器人电路板与算法深度剖析 电路板领域:人形机器人电子系统分为计算、驱动、感知、能源、通信五大模块。主控板采用高性能SoM(如NVIDIA Jetson AGX Orin),需满足严格电源完整性(PDN)与信号完整性(SI)要求;关节驱动板集成MCU、GaN/SiC功率器件及高精度编码器接口,采用刚柔结合PCB以适应狭小空间。挑战包括热-振可靠性(85°C/10G振动)、高密度互连(3mil线宽)及EMC兼容性。 算法领域:运动控制依赖MPC(模型预测控制)与强化学习(RL),实现实时动态平衡;感知算法

几十年资深高级架构师,技术专家的技术笔记。专注C、Java、Python、微服务、云原生、AI工程化及高并发系统分布式架构实战,分享源码剖析、性能调优与架构治理经验。 306

PyTorch实战(12)——图神经网络(Graph Neural Network,GNN)

在本节中,我们首先简要概述了图神经网络 (Graph Neural Network, GNN) 的核心概念与应用,GNN 通过构建计算图分层聚合节点特征,解决了传统神经网络处理图数据时的四大局限:信息深度不足、节点顺序敏感、动态扩展困难和特征稀疏性问题。了解了不同类型的图学习任务(包括节点级、边级和图级三大类)。接着我们研究了几种流行的 GNN 模型,包括:GCN (通过权重共享实现图卷积)、GAT (引入注意力机制区分邻居重要性)和 GraphSAGE (采用随机采样应对大规模图)。

盼小辉丶的博客 3670

android view 以及 viewGroup

转载自 http://blog.youkuaiyun.com/oney139/article/details/8045779 View 有一个属性为 mParent(ViewParent型) View 有一个属性为 mLayoutParams(ViewGroup.LayoutParams型) 无论是 mParent还是mLayoutParams 都是在系统在解析 XML 时自动进行初始化的. Vi

黄老板的专栏 684

各大厂薪资对比爬虫:Python采集OfferShow爆料数据

print(f"⚠️ API返回错误码: {data.get('code')}, msg: {data.get('msg')}")ax.set_title('各大厂薪资对比 (基于OfferShow爆料数据)', fontsize=16, fontweight='bold')stats.columns = ['人数', '平均年薪', '年薪中位数', '年薪标准差', '平均月薪', '平均月数']print(analyzer.get_position_stats('字节跳动').head(10))

2201_76125261的博客 603

android控件架构和自定义View的实现

一,Android架构 1.Android控件结构 Android中的每个控件都会在界面占一块矩形区域,在Android中控件分为两大类:Viewgroup和View。ViewGroup就像一个箱子,里面可以装多个View,但View就像一个实心方块,是最小单元,不能在包含其他控件。关系如图: 俗称控件树,上层负责下层的测量与绘制,并传递交互事件。在每一个控件树上面都有一个View

qq_31156769的博客 387

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Android 控件架构及View、ViewGroup的测量

附录:示例代码地址 控件在Android开发的过程中是必不可少的,无论是我们在使用系统控件还是自定义的控件。下面我们将讲解一下Android的控件架构,以及如何实现自定义控件。 1.Android控件架构 Android中的控件可以分为两类:ViewGroup 控件与View控件。ViewGroup控件作为父控件可以容纳多个View控件,并管理里面的View控件。ViewGroup可以将界面上的整...

weixin_34068198的博客 134

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

android控件架构、自定义View、ViewGroup

写在前面:新手总要跨过自定义View这个坎,虽然本人也是菜鸡一枚。看书学了几个Demo,记录总结一下,便日后查阅复习。(^__^) 嘻嘻……一、android控件架构: androidView树结构:UI界面架构: PhoneWindow将DecorView设置为整个窗口的根View,作为窗口界面的顶层视图。 oncreate()方法调用setContentView后,ActivityManage

咸鱼君i 776

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android控件架构与自定义控件详解(一)——Android控件架构与View的绘制原理

Android控件架构在Android中,控件大致被分为两类,即ViewGroup控件与View控件。ViewGroup控件作为父控件可以包含多个View控件,并管理其包含的View控件。

黄飞的专栏 2564

Android控件架构及View、ViewGroup的测量和绘制

3.1 Android控件架构 Android中控件分为ViewGroup和View。ViewGroup作为父控件可包含和管理多个View。通过ViewGroup整个界面上的

dearbaba_1666的博客 304

Android控件架构与view,viewgroup的测量和绘制

Android控件架构 Android中,每个控件都会在界面中占据一块矩形区域,控件大致分为两类:一是ViewGroup控件,二是view控件.通过viewGroup,整个界面形成一个控件树,上层控件负责下层子控件的测量和绘制,并传递交互事件,每棵控件树都有一个顶节点viewParent作为整棵控件树的控制核心,所有的交互管理事件都由它来统一分配和调度,如图: android 界面的架构图:

AnElse的专栏 782

android架构图分析,Android视图控件架构分析之View、ViewGroup

在Android中,视图控件大致被分为两类,即ViewGroup和View,ViewGroup控件作为父控件,包含并管理着子View,通过ViewGroup和View便形成了控件树,各个ViewGoup对象和View对象就是控件树中的节点。在控件树中,以树的深度来遍历查找对应的控件元素,同时,上层控件负责子控件的测量与绘制,并传递交互事件。Android控件树:AndroidUI界面架构图:一.测...

weixin_39915694的博客 351

Android 控件架构与View的绘制

Android控件架构 Android中的每个控件都会在界面占得一块矩形的区域,控件大致被分为两类:ViewGroup控件与View控件。ViewGroup左为父控件可以包含并管理多个View,让整个界面上的控件形成了一个树形结构(控件树),上层控件负责下层子控件的测量与绘制,并传递交互事件。通常在Activity使用的findViewById()方法,就是在控件树中以树的深度优先遍历来查找对应

蝌蚪鱼 923

View学习笔记(1)-Android控件架构

笔记来自Android群英传与Android开发艺术探究。Android中控件被分为两类:View、ViewGroup,每个控件都会在界面中占得一块矩形区域。ViewGroup控件作为父控件可以包含多个View控件,并管理其包含的View控件。其职责可定义为:给出子View建议的高和宽、测量模式以及决定子view的位置。(子view的高宽属性定义为warp_content时只有其自身才能计算出精确的

chenpdsu的专栏 363

Android视图控件架构分析之View、ViewGroup

  在Android中,视图控件大致被分为两类,即ViewGroup和View,ViewGroup控件作为父控件,包含并管理着子View,通过ViewGroup和View便形成了控件树,各个ViewGoup对象和View对象就是控件树中的节点。在控件树中,以树的深度来遍历查找对应的控件元素,同时,上层控件负责子控件的测量与绘制,并传递交互事件。   Android控件树:      Andr...

weixin_30894389的博客 192

安卓自定义view小实例 + MVC 思想

安卓自定义view小实例 + MVC 思想 一、自定义view实例 1.布局文件下添加控件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schem

twenty_four_7的博客 659

android难点,Android难点之——自定义View(上)

一、Android的控件架构:1、每个Activity包含一个Window对象(Window是abstract的,一般是由PhoneWindow实现)。2、PhoneWindow将DecorView设置为整个应用的根View。DecorView将具体的内容呈现在了PhoneWindow上。3、DecorView里面所有View的监听事件都通过WindowManagerService来接收,通过Ac...

weixin_32154109的博客 217

3.2.Android控件架构与自定义控件详解之View的测量

onMeasure

我想拥有一份工作,我热爱的工作 482
上一篇: Android View - 坐标系
下一篇: Android View - 测量Measure
JohanMan
博客等级 码龄10年 72粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值