android界面有几种布局各有什么特点,03-Android用户界面布局.ppt

《03-Android用户界面布局.ppt》由会员分享,可在线阅读,更多相关《03-Android用户界面布局.ppt(36页珍藏版)》请在人人文库网上搜索。

1、第2章 Android用户界面-3,本章学习目标,掌握各种界面布局的特点和使用方法,2.4 界面布局,布局管理器 为了更好地管理android应用的用户界面里的各种控件,android提供了布局管理器,通过使用布局管理器,android应用的图形用户界面具有良好的平台无关性。 不同手机屏幕的分辨率、尺寸并不完全相同,如果让程序手动控制每个控件的大小和位置,会给编程带来很大困难。为了让各种控件在不同的手机屏幕上都能运行良好,使用布局管理器,可以根据运行平台来调整控件的大小,程序员要做的,就是选择合适的布局管理器。,界面布局 使用XML文件声明界面布局的特点 将程序的表现层和控制层分离 在后期修改。

2、用户界面时,无需更改程序的源代码 用户还能够通过可视化工具直接看到所设计的用户界面,有利于加快界面设计的过程,并且为界面设计与开发带来极大的便利性,2.4 界面布局,线性布局 线性布局是最简单,Android开发者使用得最多的布局类型之一,开发者用它来组织用户界面上的控件。线性布局的作用就像它的名字一样:它将控件组织在一个垂直或水平的形式。 在线性布局中,所有的子元素都按照垂直或水平的顺序在界面上排列 如果垂直排列,则每行仅包含一个界面元素 如果水平排列,则每列仅包含一个界面元素,2.4.1 线性布局,线性布局的重要特性和属性 1)方向属性(必须),取值可以是vertical或horizont。

3、al(类LinearLayout) 2)对齐属性(可选),控制子控件在线性布局中如何排列和显示(LinearLayout) 3)layout_weight属性(可选,应用到每个子控件)指定每个子控件在父级线性布局中的相对重要性(类:LinearLayout.LayoutParams),此外,通用的ViewGroup-style属性也应用到线性布局。这些属性包括: 通用布局参数如layout_height (必须)和layout_width (必须) (类:ViewGroup.LayoutParams) 边距布局参数如margin_top,margin_left,margin_right和mar。

4、gin_bottom ( 类:ViewGroup. MarginLayoutParams)。,2.4.1 线性布局,LinearLayout 常用属性及对应方法,2.4.1 线性布局,提示:在线性布局中垂直分布时占一列,水平分布时占一行。特别要注意的是,水平 或垂直分布时如果超过一行,则不会自动换行或换列,超出屏幕的子控件将不会被显示, 除非将其放到ScrollView 中。,gravity 可取的属性及说明,2.4.1 线性布局,给子控件赋权(layout_weight) 其它线性布局属性不同,其它属性应用在线性布局视图本身,而layout_weight属性是应用在它的子控件上的。权值本身应。

5、该是一个数字(比如0.5,0.25,0.10,0.10,0.05),如果你把所有子控件的权值加起来等于1(100%)。子控件的权值控件它在父线性布局中有多“重要”或者留给其多少“空间”。,2.4.1 线性布局,线性布局,2.4.1 线性布局,线性布局,2.4.1 线性布局,框架布局 框架布局(FrameLayout)是最简单的界面布局,是用来存放一个元素的空白空间,且子元素的位置是不能够指定的,只能够放置在空白空间的左上角。如果有多个子元素,后放置的子元素将遮挡先放置的子元素。,2.4.2 框架布局,框架布局,2.4.2 框架布局,表格布局 表格布局(TableLayout)也是一种常用的界面。

6、布局,它将屏幕划分网格,通过指定行和列的形式来管理UI组件,TableLayout并不需要明确地声明包含多少行、多少列,而是通过添加TableRow、其他组件来控制表格的行数和列数。 每次向TableLayout中添加一个TableRow,该TableRow就是一个表格行,TableRow也是容器,因此可以不断地添加其他组件,每添加一个组件该表格就增加一行。 如果直接向TableLayout中添加组件,那么该组件将直接占用一行。 在表格布局中,列的宽度由该列中最宽的那个单元决定,整个表格布局的宽度则取决于父容器的宽度。 表格布局还支持嵌套,可以将一个表格布局放在另一个表格布局中,也可以在表格布。

7、局中添加其他界面布局,例如线性布局、相对布局等等。,2.4.3 表格布局,表格布局的三种行为方式 Shrinkable:如果某个列被设为Shrinkable,那么该列的所有单元格的宽度可以被收缩,以保证该表格能适应父容器的宽度。 Stretchable:如果某个列被设为Stretchable ,那么该列的所有单元格的宽度可以被拉伸,以保证组件能完全填满表格空余空间。 Collapsed:如果某个列被设为Collapsed ,那么该列的所有单元格会被隐藏。,2.4.3 表格布局,注意:一个列可以同时具有 Shrinkable 和Stretchable 属性,在这种情况下,该列的宽 度将任意拉伸或。

8、收缩以适应父容器。,表格布局的属性和方法 TableLayout 继承自LinearLayout 类,除了继承来自父类的属性和方法, TableLayout 类中还包含表格布局所特有的属性和方法。 TableLayout 类常用属性及对应方法说明:,2.4.3 表格布局,表格布局示意图,表格布局效果图,2.4.3 表格布局,表格布局, ,2.4.3 表格布局,表格布局,2.4.3 表格布局,布局嵌套,2.4.3 表格布局,相对布局 在相对布局中,子控件的位置是相对兄弟控件或父容器而决定的。出于性能考虑,在设计相对布局时要按照控件之间的依赖关系排列,如View A 的位置相对于View B 来决。

9、定,则需要保证在布局文件中View B 在View A 的前面。 特点:能够最大程度保证在各种屏幕类型的手机上正确显示界面布局,2.4.4相对布局,相对布局的属性 相对布局中只取true 或false 的属性,2.4.4相对布局,相对布局的属性 相对布局中取值为其他控件id 的属性及说明,2.4.4相对布局,相对布局的属性 相对布局中取值为像素的属性及说明,2.4.4相对布局,需要注意的是在进行相对布局时要避免出现循环依赖,例如设置相对布局在父容器中的 排列方式为WRAP_CONTENT,就不能再将相对布局的子控件设置为 ALIGN_PARENT_BOTTOM。因为这样会造成子控件和父控件相互。

10、依赖和参照的错误。,相对布局 相对布局在main.xml文件的完整代码如下, ,2.4.4相对布局,相对布局子规则 用于子控件在父布局中居中的规则,包括:水平居中,垂直居中,或者两者皆居中。 用于子控件在父布局中排布的规则,包括:在顶部,底部,左,右边缘放置。 用于子控件相对于其它子控件排布的规则,包括:在另一个控件顶,底,左,右边缘放置。 用于子控件相对于其它子控件放置的规则,包括:在另一个控件上面,底下,左边或右边放置。,2.4.4相对布局,相对布局使用技巧,相对布局的子控件必须有唯一的id属性以使规则正确应用。 当心循环规则。循环规则发生在两个控件具有互相指向的规则时。如果你在布局设计中。

11、使用了 循环规则,你将会得到以下错误信息: IllegalStateException: Circular dependencies cannot exist in a RelativeLayout (相对布局中不允许存在循环依赖) 保持你的相对布局规则最小化。这减小了循环规则的机率并且使得你的布局更加可维护和灵活。 一般地,记住测试一下你的布局设计在横屏和竖屏模式下,以及在不同的屏幕大小和解决方案 下是不是符合预期的。 使用相对布局代替嵌套线性布局以改进程序性能和响应能力。,2.4.4相对布局,绝对布局 绝对布局(AbsoluteLayout)能通过指定界面元素的坐标位置,来确定用户界面的整。

12、体布局 绝对布局是一种不推荐使用的界面布局,因为通过X轴和Y轴确定界面元素位置后,Android系统不能够根据不同屏幕对界面元素的位置进行调整,降低了界面布局对不同类型和尺寸屏幕的适应能力,2.4.5绝对布局,绝对布局 每一个界面控件都必须指定坐标(X,Y) 例如用户编辑框的坐标是(40,40);文本编辑框的坐标是(40,60),宽度为200dip;“确认”按钮的坐标是(40,120),宽度为100dip;“取消”按钮的坐标是(150,120),宽度为100dip。坐标原点(0,0)在屏幕的左上角,2.4.5绝对布局,总结,本章主要介绍的内容是在Android 平台下开发用户界面时使用的几种布局管理器。在介绍每种布局管理器时,都有案例进行辅助说明。本章是学习Android 用户界面开发比较基础的一章,虽然本章的知识并不是很难,但是对于后面章节的学习是十分有帮助的。,作业,习题一:线性布局,作业,习题二:帧布局,作业,习题三:表格布局,作业,习题四:相对布局,习题六:布局嵌套,作业。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值