Android界面View及ViewGroup

发布时间:2021-07-31 17:22:54

原作者:http://www.verydemo.com/demo_c131_i145269.html



转载:http://www.2cto.com/kf/201109/104633.html


?


?


View及ViewGroup类关系
Android View和ViewGroup从组成架构上看,似乎ViewGroup在View之上,View需要继承ViewGroup,但实际上不是这样的。View是基类,ViewGroup是它的子类。这就证明了一点,View代表了用户界面组件的一块可绘制的空间块。每一个View在屏幕上占据一个长方形区域。在这个区域内,这个VIEW对象负责图形绘制和事件处理。View是小控件widgets和ViewGroup的父类。ViewGroup又是Layout的基类。


?


?



从上面两图的对比中,可以看出,实际上ViewGroup是View的子类,因此,View的行为特征ViewGroup也具备,但同时因为ViewGroup是Layout的祖先,所以具备了其它一些特点,View所未具有的。通常创建一个View,不论是通过XML还是通过代码创建。对任何一个View及这个View的子类Widget,需要关注如下几个方面:
【1】设置属性,如长、宽、着色等。这些属性的设置通常可以用代码实现,也可以用XML文件。并用这些属性在运行时候也可以通常方法进行修改。
ID 属性,Android对每个UI元素的ID名称要求唯一,但也不绝对。同时在不同的Layout中是可以相同的元素名称的。给一个UI元素指定ID,有一个好处就是可以在代码中找得到。


?


Tags,同ID不同,这个不用来搜索View,类似于对View的一些描述性数据保存。
Animation,对任何一个View,可以使用动画对象进行操作。注意,如果View有子的话,子同样具备这个animation功能
Position, Size, padding and margins,对任一个View来说,表达这个View通常是宽和高。也可以设置padding和margins。不是所有的View都设置margins。


?


Orientatiion,对ViewGroup的子类Layout来说,设置Orienatation,可用来决定子类的位置
FillModel,出现这种情况主要是默认情况,某些元素不能完全占满父区域的空间,这时除非子VIEW已经设置具体和DPI,否则话需要告诉父控件,你所选择填充空间方式,如Fill-parent或者Wrap-content等。
Gravity,Gravity与Orientation是不同,Gravaity与Word文档中左对齐,右对齐类似。缺省是左上对齐。
Weight,这个在两个控制同时分配剩余空间,需要设置layout-weight决定两者谁的占比。
【2】请求焦点,可以通过函数实现焦点转换。不同的焦点可以实现不同的背景变换等功能。焦点在Android里分为几种情况,一种是可以获取焦点,另外一种是不能获取焦点,第三种是可获取焦点,但当前正取触摸状态下。
【3】设置事件监听者,所有的View都会在本身发生变化将自身的信息广播出去。比喻点击、焦点失去得到等。通常一个事件来到,Android会将事件传递到相应的View,然后View将事件传递到相应的Listeners。这时View需要获取焦点,如果需要重新绘制View的话,需要调用invalidate(0或者reqeustLayout重新绘制整个界面。
【4】设置显示与隐藏,还可以对其内容设置scrolling。
2.1.1 View、Window、Activity、Dispay之间的关系
这些都是组成Android 系统显示的关键元素。我们首先来了解Dispay。Dispay代表了硬件显示屏幕信息。


?


....................................................................


?


从上图,我们可以理出大致的显示过程如下:
【1】ActivityManagerService创建Activity线程,激活一个activity
【2】系统调用Instrumentation.newActivity创建一个activity
【3】Activity创建后,attach到一个新创建的phonewindow中。这样Activity获取一个唯一的WindowManager服务的实例
【4】Activity创建过程中使用setcontentView设置用用户UI,这些VIEW被加入到PhoneWindow的ContentParent中。
【5】Activity线程继续执行,当执行到Activity.makeVisible是将根view DecoView加入到WindowManger中,WindowManger实全会为每个DecoView创建对应的ViewRoot
【6】每个ViewRoot拥有一个Surface,每个Surface将会调用底层库创建图形绘制的内存空间。这个底层库就是SurfaceFlinger。SurfaceFlinger同时也负责将个View绘制的图形合到一块(按照Z轴)显示到用户屏幕。
【7】如果用户直接在Canvas上绘制,实际上它直接操作Surface。但对每个View的变更,它是要通知到ViewRoot,然后ViewRoot获取Canvas。如果绘制完成,surfaceFlinger得到通知,合并Surface成一个Surface到设备屏幕。
从上面的图形输出过程分析,我们可以知道真正显示图形的实际上跟Activity没有关系,完全由WindowManager来决定。WindowManager是一个系统服务,因此可以直接调用这个服务来创建界面,并且更绝的是Dialog、Menu也是有WindowManager来管理的。另外一个我们也可以看到,最底层都是Surface来,因此,常见开发游戏的人都推荐你使用SurfaceView来创建界面。








相关资源:TongWeb技术文档合集

相关文档

  • 山木蓝的花语及养殖方法
  • 秋游野炊日记
  • 完美解决mysql数据库中文插入异常
  • CSS-8-盒子模型及边框使用
  • 手机向日葵忘记账号怎么办
  • 数据结构与算法-赫夫曼树(最优二叉树)、赫夫曼编码
  • 励志工作的短文
  • MUDOS详解
  • 太阳能发电项目审批程序
  • 村级党组织建设工作总结
  • 苹果4s忘记锁屏密码怎么办
  • 2012年12月英语四级作文范文-西方节日的流行
  • 笔记本电脑插上耳机还有外音的解决办法
  • 舒乙北京的春节主要内容
  • 小品--心系珍珠精选多篇
  • 日本留学最具有发展前景的专业
  • 海边沙滩风景怎么画涂色简单漂亮
  • 幼儿园大班教育反思
  • 关于自己奋斗的说说
  • 在MVC2.0 中 遭遇无法被 Try Catch 的 “Exception”
  • 一周快速减肥法 一星期快速减肥20斤
  • 委托运输热门合同范本
  • Unity学习shader笔记[二十]距离扫描
  • 英语怎样快速学习有哪些方法
  • 简述国民经济管理毕业论文选题
  • 网络营销十道“羊皮卷”
  • 虾英语怎么读
  • Tomcat正常启动,可以访问其主页,却不能访问webapp中的项目的jsp文件
  • 妇科炎症怀孕了能要吗?妇科炎症对胎儿有影响吗
  • 本号主自己整理的纯福利资源【非广告】
  • 猜你喜欢

  • 结膜炎眼睛肿了怎么办?结膜炎眼睛红几天能好?
  • 2017年广东教育教学成果奖特等奖项目共9项
  • 电脑电源各线电压
  • 【经典汇编】2019-2020年湖南省长沙市三模:长沙市2019届高三第三次模拟考试数学(理)试题-含答案
  • 广东省德庆县孔子中学高考化学选择题专项训练三物质的性质与用途电化学
  • 深圳市香深贸易有限公司(企业信用报告)- 天眼查
  • 驻马店市九星机械有限公司企业信息报告-天眼查
  • 四年级想象作文:我想有只神笔200字
  • 中考物理总复*第13课时光的折射透镜成像及其应用光的
  • 吊兰的含义是什么
  • 狗狗咳嗽的很厉害怎么办
  • 汽车车身焊接夹具设计
  • 2019年党建工作计划表 2019年秋季学校党建工作计划 精品
  • 贵州中禾汽车贸易有限公司中曹分公司企业信用报告-天眼查
  • 污水处理厂设计说明与计算书 secret
  • 2010年南昌大学马克思主义学院思想政治教育专业研究生入学考试马克思主义哲学试题
  • 福建省南*市浦城县八年级生物上学期期中试题(扫描版) 新人教版
  • 我国安全生产事故频发的原因
  • 品尝美味作文600字(高分作文)
  • 滁州开发区华绿草坪苗木园艺经营部(企业信用报告)- 天眼查
  • 【文库新品】2019-2020学年度第一学期★精选★ 青岛版三年级上册数学期末检测卷及答案(5)--推荐练*
  • 【精编范文】我的中国梦手抄报资料:大的梦想-实用word文档 (2页)
  • import numpy出错的一个问题
  • 温州市苍南县六校2019年3月中考第一次联合模拟数学试卷(有答案)
  • 苏州博斯宇五金有限公司企业信用报告-天眼查
  • 中耳炎护理查房ppt模式模板
  • 兰州市永登县2015-2016学年八年级下数学竞赛试题含答案
  • 精编高考30天冲刺家长会课件
  • 核外电子排布的初步知识(_一〕
  • 常规水稻杀虫剂混用配方
  • 技术支持&&用户隐私协议
  • 哈国家石油天然气公司收购曼吉斯套油气公司的股份
  • 怎么设苹果手机id密码忘了怎么办
  • 第一章 SQL Server2000概述.ppt.Convertor
  • 浙江鼎清环境检测技术有限公司(企业信用报告)- 天眼查
  • 暖心爱情说说短语 只要能收获甜蜜荆棘丛中也会有蜜蜂忙碌的身
  • 联通光纤猫接路由器上不了网
  • 六年级体育课件青春期生长发育特点 全国通用(共19张ppt)
  • 郑州和顺机械设备租赁有限公司(企业信用报告)- 天眼查
  • 广东省德庆县孔子中学高考化学选择题专项训练三物质的性质与用途电化学
  • 【优质部编】2019-2020学年高一语文上学期期中试题人教版新版
  • 推荐-人教版高中英语必修四Module 3《Unit 4 Astronomy the science of the stars》(reading)ppt课件
  • 电脑版