android Activity布局初步(三)- 相对布局

Activity布局初步(三)- 相对布局
1、 相对布局的基本概念
一个控件的位置它决定于它和其他控件的关系,好处:比较灵活;缺点:掌握比较复杂。
2、 相对布局常用属性介绍
这里将这些属性分成4个组,便于理解和记忆。
a)、以下4个属性设置控件与之间的关系和位置

[img]http://dl.iteye.com/upload/attachment/358074/4c732a71-bba8-3c17-8e41-ba9152a9de44.jpg[/img]

但是上面4个属性并没有设置各个控件之间是否对齐。
示例1:将控件A放置在控件B的上面,则使用android:layout_above属性,控件布局的效果可以有以下这么两种情况。
1、 控件A与控件B对齐,并且控件A是在控件B的上面。
2、 控件A没有与控件B对齐,但是控件A又确实是在控件B的上面。

[img]http://dl.iteye.com/upload/attachment/358071/5e0a2c07-40a3-373d-bdd2-b76e90fdffb0.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/358076/cf840b28-2dfc-392c-a3fc-d1d9711b4430.jpg[/img]

b)、以下5个属性,设置的是控件与控件之间对齐的方式(是顶部、底部还是左、右对齐)。

[img]http://dl.iteye.com/upload/attachment/358078/b3c814b9-8fa4-3f41-a3dd-ee562906cebc.jpg[/img]

示例2:在示例1的基础上,设置控件A放置在控件B的上面,使用android:layout_above属性,并且控件A的左边边缘与控件B的左边边缘对齐,使用android:layout_alignLeft属性。

[img]http://dl.iteye.com/upload/attachment/358080/ca080d3d-6742-3857-acce-e48338ceafcc.jpg[/img]

c)、以下4个属性设置控件与父控件之间对齐的方式(是顶部、底部还是左、右对齐)。

[img]http://dl.iteye.com/upload/attachment/358082/89de7760-37c2-324a-bf46-71fe8ed2ffc5.jpg[/img]

d)、以下4个属性设置控件的方向。

[img]http://dl.iteye.com/upload/attachment/358084/365ce997-f49f-3960-bb6c-93aaeeb14265.jpg[/img]

可以通过组合这些属性来实现各种各样的布局。
注:以上属性和其他更多属性的作用都能在android的帮助文档中找到;

示例3:假如要实现一个如下图这样布局的程序

[img]http://dl.iteye.com/upload/attachment/358089/cea39f6a-b69c-3759-8b3a-af88e9da5939.jpg[/img]
如果这样的布局要使用LinearLayout的话会比较麻烦和复杂,
1、 首先需要一个垂直布局方向的LinearLayout,包裹所有的控件;
2、 然后在第一个LinearLayout中嵌套一个垂直方向的LinearLayout,放在上部分,在这个LinearLayout中放入一个TextView和EditText;
3、 最后还是在第一个LinearLayout中嵌套一个水平方向的LinearLayout,放在第一个LinearLayout的下部分,在这个LinearLayout中放入两个Button,并且还得让它们居右。
可参考下图:

[img]http://dl.iteye.com/upload/attachment/358087/4e9d680c-dac3-3cf4-9501-65d31d79565a.jpg[/img]

如果使用RelativeLayout会要简单很多,下面为main.xml的代码。

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10px"
>
<TextView
android:id="@+id/lable"
android:text="Type here:"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>

<EditText
android:id="@+id/entry"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/lable"
/>

<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK"
android:layout_below="@id/entry"
android:layout_marginLeft="10px"
android:layout_alignParentRight="true"
/>

<Button
android:id="@+id/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="Cancel"
/>
</RelativeLayout>

示例3已上传到附件,有需要的可下载。
至于示例1、示例2就需要各位自己亲手敲敲代码咯~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值