Download presentation
Presentation is loading. Please wait.
1
android 黄锵
2
【目标】 掌握UI基本控件 理解布局文件与activity的关系
3
1. RadioGroup 单选框 作用:为用户提供多选一的输入模式。例如,性别等互斥、排他性的选择。
5
如何知道选中了的选项? 方案一:为每个单选按钮添加单击的响应事件 (1)添加单击响应事件 (2)获取控件及为控件绑定事件
6
如何知道选中了的选项? 方案二:为整个单选组添加选项变化的响应事件
7
【课堂练习】为app添加一个单选组及按钮。实现如下效果:
8
为什么需RadioButton要作为RadioGroup的子标签?
请同学们删除RadioGroup再运行APP观察运行效果。
9
2. CheckBox复选框 作用:为用户提供多选多的输入模式或者用作于控制开关。 例如,选择兴趣爱好、是否升级、 。
11
选项变化的事件
12
为方便开发者对APP进行开发,android提供了一系列的UI控件。这些UI控件都继承与View这个基类。通过这种组件化的模型,可以加速APP的开发。
有的UI控件是独立的个体,例如TextView、Button。有的UI控件像是一个容器,可以往容器中放入其它的UI控件,例如RadioGroup、RelativeLayout。 其中,支持放置子控件的UI容器,继承于View的一个子类:ViewGroup。形成了一个特殊的分支。在这个分支中的视图控件,支持嵌套容纳其它控件。 (1) RadioGroup之中是否可以不放置任何RadioButton? (2) RadioGroup之中可以放置RadioButton,是否也可放置RadioGroup?
14
布局是一个程序用户界面的架构,它定义了界面的布局结构,用于存放一组需要显示给用户的元素,例如文本框、按钮等控件。
布局文件使用XML来定义自己的布局,以.xml为扩展名,存放在项目的res/layout目录下,可自动被编译放在R.java文件中 需要注意的是,布局文件的命名不能使用大写字母。 每个布局文件必须包含一个根元素,根元素必须是一个View或ViewGroup对象。一旦定义了根元素,就可以添加其他View元素,逐步构建一个视图层次的界面布局。
15
布局文件中的资源ID XML中新增资源ID的语法如下。 android:id="@+id/editText1"
@符号表示XML解析器应该解析和扩展剩下的ID字符串,并将其用作ID资源。+符号表示这是一个新的资源名字,必须被创建且加入到R.java文件中。 R.java文件是一个final类,保存了应用程序用到的图标、常量等各种资源ID,被放置在“项目名称/gen/项目包名/R.java”目录下。R.java是编译器根据用户的XML文件或资源文件自动创建的,请勿手工修改R.java文件。 通过R.java,应用程序能方便地查找到对应的资源,调用的格式是R.XXX.XXX,XXX符号在实际使用时应填写具体的值。如R.drawable.XXX,R.string.XXX、R.layout.XXX、R.id.XXX,分别对应于“项目目录/res/drawable/”下的资源、“/res/string/”下的字符串、“/res/layout/”下的布局文件及XML文件中控件元素的ID等。R.layout.main_layout表示名为main_layout的布局文件。 程序代码通过findViewById方法从布局文件中找到id对应的UI视图。
16
线性布局:将组件按照垂直或水平方向排列。需要注意的是,布局不会自动换行,如果超出了屏幕的显示范围,超出部分的组件将无法显示。由于RadioGroup继承了LinearLayout,所以我们也可以对RadioButton的排列顺序进行调整。
17
android:orientation设置排列方向。
vertical:只有一列,所有组件从上至下垂直排放。 horizontal:只有一行,所有组件从左至右水平排放。
18
常用的XML属性: android:orientation 线性布局的排列方向(vertical\horizontal) android:grivaty 控件内部元素的排列位置 (center_vertical、center_horizontal等) android:layout_weight 相对于父控件的权重(左图效果) android:layout_gravity 相对于父控件的位置(右图效果)
19
表格布局:以行、列的形式来显示子视图。 通过<TableRow>标签表示一行,但没有标签来表示列。 只要往<TableRow>标签中,添加一个子视图,即相当于增加一列。如果不使用<TableRow>标签,而直接在TableLayout中添加一个普通的子视图,那么该子视图将会占据一整行。
21
网格布局:以二维的形式显示子视图。
22
【练习】模仿window计算器,完成下图布局。
23
布局 相对布局:通过描述各个子视图之间、或子视图与父容器之间的相对位置关系,来排列控件。
24
TextView Button TextView TextView Button Button
25
在XML布局文件中,定义相对布局管理器可以使用<RelativeLayout>标记,其基本的语法格式如下:
<RelativeLayout xmlns:android=" 属性列表 > </RelativeLayout>
27
在xml中使用RelativeLayout编写代码时,要注意避免出现相互参照的死循环。
28
相对布局中只取true或false的属性
29
相对布局中取值为其他控件id的属性及说明
30
布局 绝对布局:通过给出控件的坐标,来排列控件。直观,但是适配性较差。
33
帧布局:在屏幕中的一个区域显示单一的视图。默认从屏幕左上角,即(0,0)坐标点进行绘制。 多个视图以叠加覆盖的方式显示,因此后面添加的视图,会件覆盖在前面的视图之上。需要注意的是,在API-10(2.3.3)版本中,margin_top等布局属性无法生效。
34
由于第二个ImageView的center是根据父控件进行计算的,因此不能将framelayout的height改为match_parent。
35
谢谢~~
Similar presentations