Android循序渐进 - 2.1 View与ViewGroup
来源:互联网 发布:php培训出来的 编辑:程序博客网 时间:2024/06/06 05:38
UI Overview
在Android APP中,所有的用户界面元素都是由View和ViewGroup的对象构成的。View是绘制在屏幕上的用户能与之交互的一个对象。而ViewGroup则是一个用于存放其他View(和ViewGroup)对象的布局容器! Android为我们提供了一个View和ViewGroup子类的集合,集合中提供了一些常用的输入控件(比如按钮和文本域)和各种各样的布局模式(比如线性或相对布局)
User Interface Layout
你的APP的用户界面上的每一个组件都是使用View和ViewGroup对象的层次结构来构成的,比如 图 1。每个ViewGroup都是要给看不见的用于组织子View的容器,而它的子View可能是输入控件 或者在UI上绘制了某块区域的小部件。有了层次树,你就可以根据自己的需要,设计简单或者复杂的布局了(布局越简单性能越好)
图 1.一个UI布局的层次结构的插图
定义你的布局,你可以在代码中实例化View对象并且开始构建你的树,但最容易和最高效的方式来定义你的布局则是使用一个XML文件,用XML来构成布局更加符合人的阅读习惯,而XML类似与HTML
使用XML元素的名称代表一个View。所以< TextView >元素会在你的界面中创建一个TextView控件,而一个< LinearLayout >则会创建一个LinearLayout的容器!
举个例子,一个简单简单的垂直布局上面有一个文本视图和一个按钮,就像下面这样:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a Button" /></LinearLayout>
当你的App加载上述的布局资源的时候,Android会将布局中的每个节点进行实例化成一个个对象,然后你可以为这些定义一些额外的星外,查询对象的状态,或者修改布局。
完整创建UI布局的引导,请参考XML Layouts
User Interface Components
你无需全部用View和ViewGroup对象来创建你的UI布局。Android给我们提供了一些app控件,标准的UI布局,你只需要定义内容。这些UI组件都有其属性介绍的API文档,比如操作栏,对话框和状态通知栏等。
本节小结:
简单归纳下上述内容:
Android里的图形界面都是由View和ViewGroup以及他们的子类构成的:
View:所有可视化控件的父类,提供组件描绘和时间处理方法 ViewGroup: View类的子类,可以拥有子控件,可以看作是容器
Android UI中的控件都是按照这种层次树的结构堆叠得,而创建UI布局的方式有两种,
自己在Java里写代码或者通过XML定义布局,后者显得更加方便和容易理解!
也是我们最常用的手段!另外我们一般很少直接用View和ViewGroup来写布局,更多的 时候使用它们的子类控件或容器来构建布局!
对View和ViewGroup有个大概了解即可,平时我们是不会直接用的,一般是自定义View的时候 才会使用这两个东西!
参考:
UI概述开发者官网
- Android循序渐进 - 2.1 View与ViewGroup
- android 之view与viewgroup
- android View与ViewGroup研究
- Android UI---View与ViewGroup
- android View与ViewGroup研究
- Android—View与ViewGroup的区别
- android view viewgroup 与分发机制
- Android View 与 ViewGroup 事件分发总结
- Android之View与viewGroup的区别
- Android View系统分析之二View与ViewGroup
- Android View系统分析之二View与ViewGroup,androidviewgroup
- ViewGroup与View
- View与ViewGroup
- View与ViewGroup
- View与ViewGroup
- View与ViewGroup
- 自定义View与ViewGroup
- View与ViewGroup
- CSS3基础
- CSS 框模型概述
- Unity3D中js与C#之间相互调用的解决办法
- Rich feature hierarchies for accurate object detection and semantic segmentation
- C++入门教程2015最新版(轻量进阶)
- Android循序渐进 - 2.1 View与ViewGroup
- Intel MCE CMCI (一) 概述
- Android-通过自定义ViewPager来高仿土巴兔选择装修风格效果(中间放大效果)
- 网页路径问题
- 机房收费系统常见问题
- ios中的事件处理、响应者链条以及第一响应者
- 序列化各个类型成JSON XML实例
- 基于XBee进行ZigBee组网(二)——ZigBee网络与XCTU的使用
- HashMap和HashTable源码学习笔记