(四)View的控件架构

四、界面编程(一) View的基础知识及架构详解 View虽然不属于四大组件,但是它的作用堪比四大组件,甚至比Receiver和Provider的重要性都更大。本文将介绍View的基础知识、常用概念、测量绘制简介等内容,通过这些内容的理解,可以更深入的了解View,也为更复杂的内容做下铺垫。 阅读详情
Android的控件架构
       Android中控件大致分为ViewGroup控件和View控件。在Activity中使用的findViewbyId()方法,就是在控件树中以深度优先遍历查找对应元素。

                                                           android UI架构图
每个Activvity都包含一个Window对象,该对象通常由PhoneWindow实现,该Window在Activity的attach方法中通过调用PolicyManager.makeNewWindo创建; PhoneWindow将一个DecorView设置为整个应用窗口的根View。DecorView作为窗口界面的顶层视图,封装了一些窗口操作的通用方法。DecorView将要显示的具体内容呈现在了PhoneWindow,这里面的所有View的监听事件都通过WSM(WindowManagerService)来进行接受,通过Activity对象来回调相应的Listener。显示上,DecorView装载了一个竖的LinearLayout,将屏幕分为两部分TitleView和ContentView。ContentView是一个ID为content的FrameLayout,在Activity中调用的setContentView就是给ContentView设置内容的。注意:当程序在onCreate()方法中setContentView()方法后,AMS(ActivityManagerService)会回调onResume()方法,此时系统会将整个DecorView添加到PhoneWindow中,以完成界面绘制。

ViewRoot是连接DecorView和WMS的纽带,对应于ViewRootImpl类,View的三大流程均是通过ViewRoot完成。





















View框架详解.PPT View框架详解。 Android的跨进程通信 View的简介 View的绘制过程 XML布局和代码布局 View的触摸事件 View的Measure View的Layout、Draw 自定义View练习 立即下载

相关推荐

从零到一:Quartus II连接开发板实战,打通绘图、管脚分配、编译与下载全链路

本文详细介绍了使用Quartus II软件连接FPGA开发板并完成首个项目的全流程。从硬件连接到驱动安装,到绘制电路框图、精准分配管脚,再到编译设置与最终下载,手把手指导您打通从设计到硬件实现的完整链路,是FPGA初学者的实战入门指南。

mqtt6iot的博客 717

Android——基本控件之View控件(三)

View简介

毛栗子201105的博客 250

多旋翼飞行器设计与控制·Pixhawk4以及外部设备接线(笔记004)

笔记主要来源:Pixhawk 4 接线快速入门 目录 一、Pixhawk 4 的各个接口 二、接线图概览(重要传感器及外围设备) 三、飞控、GPS的安装和方向 四、电源 五、无线电遥控 六、数传电台(可选) 七、SD Card(可选) 八、电机以及其他外设 一、Pixhawk 4 的各个接口 FMU:Flight Management Unit 飞行管理组件 主 FMU 处理器:STM32F765 32 位 Arm® Cortex®-M7,216MHz,2MB...

猪猪的博客 1万+

android开发艺术(三)之View

View是android中所有控件的基类,Button、TextView、LinearLayout共同基类都是View;ViewGroup 继承自View,View本身可以是单个控件,也可以是多个控件组成的一组控件。

梵高话葵 1398

告别Docker Desktop!Colima在Mac上的5分钟极速安装与配置指南(M1芯片实测)

本文详细介绍了如何在Mac(尤其是M1芯片)上快速安装和配置Colima,作为Docker Desktop的免费替代品。通过优化配置和实战指南,帮助开发者提升容器运行效率,减少资源占用,实现丝滑的开发体验。

weixin_28839601的博客 445

服务器被攻击植入挖矿病毒,CPU占用高问题排查处理(.systemd-service.sh)

客户服务器遭攻击,部署的应用服务经常性被停止,服务器CPU占用居高不下,top查看如下: 可以看到第一个bash任务,占用cpu近400%,非正常的应用程序和脚本任务,多半是被植入了木马信息。 查看该进程的符号连接,发现已经是被删除的状态 /usr/bin/-bash (deleted),无法查看其启动程序的信息 查看定时任务:cat /etc/crontab,发现都是正常的应用程序定时脚本 又用 crontab -l 查看了一下,发现了异常定时任务如下,同top里的异常任务一致...

gottst0113的博客 2119

Android开发中_View控件及属性方法的使用记录

记录一些Android开发中,基础View的API使用及描述。

IT666DHW的博客 906

解决Thingsboard数据下发难题:自定义RPC请求格式的3种方法(含源码修改指南)

本文详细介绍了解决Thingsboard数据下发难题的3种自定义RPC请求格式方法,包括规则链脚本转换、TB-Gateway中间层转换和源码级定制方案。通过实际案例和性能对比,帮助开发者根据项目需求选择最适合的解决方案,提升物联网平台与设备的兼容性。

weixin_29008691的博客 232

View体系(一)View基础知识

View 及ViewGroup 在Android中,常用控件可大致分为两大类:View与ViewGroup。ViewGroup可包含多个View及ViewGroup,形成一个树状结构。需要注意的是ViewGroup也继承自View。View及ViewGroup组织结构如下: 常见的可视控件都是View的子类,如:TextView ,Button ,ImageView 等。 常见的布局控件都是ViewGroup的子类,如:LinearLayout ,FrameLayout , RelativeLayout

droidYu 401

Windows11安装配置openclaw+deepseek(大龙虾)

密码可以随便设置(注意wsl系统本质上是linux系统,设置密码系统是不会像windows一样显示*点位符的),输入密码后敲回车再次输入密码,输入后敲回车。如果不小心关闭这个界面,可以再次进入powershell,输入wsl进行系统。在powershell中输入:curl -fssL https://openclaw.ai/install.sh | bash。下面是否通过第3方平台和openclaw交互,我选择j最后一项:skip for now。到下面这一步,可以通过键盘的左箭头选择Yes.

mahailiang的专栏 343

【WRF-Chem工具】pyVPRM 计算大气与陆地植被之间的 CO₂ 交换通量

pyVPRM 计算大气与陆地植被之间的 CO₂ 交换通量

WW、forever的博客 210

3.5.Android控件架构与自定义控件详解之自定义View(四)

3.5.3 重写View来实现全新的控件     先分析自定义View的组成,然后一步一步进行绘制     代码如下: int mCircleXY, mRadius; Paint mCirclepaint, mArcPaint, mTextPaint; RectF mArcrectf; private String mText = "Hello Wor

我想拥有一份工作,我热爱的工作 369

计算机网络基础:揭开网络世界的神秘面纱

计算机网络基础:揭开网络世界的神秘面纱,计算机网络已深度融入现代生活,这篇文章对其基础内容展开全面阐述。开篇介绍计算机网络的定义,说明其由计算机设备、网络设备和传输介质构成。接着从地域范围和拓扑结构两个维度对计算机网络进行分类,并详细讲解 OSI 和 TCP/IP 参考模型,明晰各层功能与联系。随后阐述网络通信协议的定义及常见协议,如 TCP/IP、HTTP 等。最后聚焦网络安全,涵盖定义、重要性以及防火墙、加密技术等常用安全技术。文章旨在帮助读者构建计算机网络基础知识体系,理解其在生活和工作中的应用与价值

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 6万+

Android 控件架构与自定义控件(一)

一. Android 控件架构Android中控件可以分为两类: ViewGroup控件和View控件,ViewGroup控件作为父控件可以包含多个View控件,并管理其包含的View控件。通过ViewGroup,整个界面上的控件 形成了一个树形结构,上层控件负责下层子控件的测量和绘制,并传递交互事件。 findViewById( ) 方法就是在控件树中以树的深度优先遍历来查找对应的元素。在每

蓝枫 5668

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Model/View 架构实战:QTableView 嵌入自定义控件完全指南

本文介绍了Qt中Model/View架构实现表格控件嵌入的方法。首先阐述了Model/View三大组件的分工:模型负责数据存储、视图负责展示、代理负责自定义控件。然后重点讲解了通过自定义代理Delegate嵌入按钮、复选框等控件的技术方案,包括代理的核心方法createEditor()创建控件、setEditorData()初始化数据、setModelData()回写数据。

极地星辰 1152

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

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

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

qq_31156769的博客 387

假人有限元模型

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

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

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

AnElse的专栏 782

Android自定义View的实现方法,带你一步步深入了解View(四)

不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回顾一下,我们一共学习了LayoutInflater的原理分析、视图的绘制流程、视图的状态及重绘等知识,算是把View中很多重要的知识点都涉及到了。如果你还没有看过我前面的几篇文章,建议先去阅读一下,多了解一些原理方面的东西。 之前我有承诺过,会在View这个话题上多写几篇博客,讲一讲View的工作原理,以及自定义View的方法。现在前半部分的承诺已经如约兑现了,那么今天我就要来兑现后面部分的承诺,讲一讲自定义View的实现方法,同时这也是带

郭霖的专栏 18万+

控件之View与ViewGroup

一、Android控件架构 1.1 关于View&ViewGroup 1、Android中每个控件都会在界面中占得一块矩形的区域 2、控件一般分为两类:ViewGroup控件和View控件,他们两个的关系如上图一样,ViewGroup可以包含View控件 3、通过最顶部的ViewGroup控件,整个界面上的控件就形成了一个 控件树 的结构 4、通常在使用 findViewById()方法 就是在控件树中以树的深度优先遍历来查找对应元素 5、ViewParent对象在控件树的顶部,作为整棵树的控制核

Cristiano_san的博客 885

Android控件架构与自定义控件详解

一、Android控件架构 如图所示啦,上面就是我们常见的控件树,上层控件负责下层子控件的测量与绘制,并传递交互事件。 通常在Activity中使用 findViewById() 的方法在控件树中以树的深度优先遍历来查找对应的元素。 每棵树的顶部其实还有一个ViewParent对象,它是整棵树的控制核心,图中并没有标识出来,所有的交互管理事件都由它来统一调度和分配,从而可以对

我的专栏 3976

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

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

dearbaba_1666的博客 304

List View控件总结

常用属性 View属性 设置ListVIew显示项的视图,View的枚举值之一。例如:listView1.View = View.Details; 枚举 说明 Details 每个项将显示在单独的行与列中排列的各项有关的详细信息。 最左侧列中包含一个小图标和标签,并且后续列包含由应用程序指定的子项。 列会显示一个可以显示的列标题的头。 在运行时,用户可以调整每一列。 LargeIcon

AI浩 3939

view类控件

1.Android自定义控件是通过继承View类实现的,新建一个View类的子类,然后重写ondraw方法,加入你创建的类名为(MyView),那么在Activity中SetContentview(MyView),就可以显示你自己定义的控件了。 但是如果你想将该控件能够和其他控

C_simple的专栏 639

WPF MVVM 如何在ViewModel中操作View中的控件事件

(在学习Wpf的时候,做一个小例子,想在TextBox改变后,检验合法性,并弹出提示。在找了很多贴后,发现这个小例子,抄袭过来,仅供参考。 最后也找到了适合自己例子的办法:在出发TextChanged后,做出提示(提示可以根据要求来写),见最后。) 虽然说MVVM模式下不建议在Viewmodel层中操控View层中控件,但是在某些情况下,比如想要得到某个事件的参数,在Viewmodel层...

weixin_30421809的博客 3198

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

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

咸鱼君i 775
上一篇: (三)Activity的启动模式
下一篇: (五)View的测量 MeasureSpec类
kerrysimon
博客等级 码龄11年 3粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值