《物联网Android程序开发案例式教程》Demo2:相对布局

一、必备知识

相对布局的控件位置设置主要分为以下两种:

1、控件根据父布局来定位

属性名描述取值
android:layout_alighParentLeft控件相对父布局左对齐true或false
android:layout_alighParentRight控件相对父布局右对齐true或false
android:layout_alighParentTop控件相对父布局上对齐true或false
android:layout_alighParentBottom控件相对父布局下对齐true或false
android:layout_centerHorizontal控件相对父布局水平居中true或false
android:layout_centerVertical控件相对父布局垂直居中true或false
android:layout_centerInParent控件相对父布局水平且垂直居中true或false

2、控件根据兄弟控件来定位

属性名描述取值
android:layout_toLeftOf控件在另一个控件左边另一个控件的id
android:layout_toRightOf控件在另一个控件右边另一个控件的id
android:layout_above控件在另一个控件上边另一个控件的id
android:layout_below控件在另一个控件下边另一个控件的id
android:layout_alighTop控件相对另一控件上对齐另一个控件的id
android:layout_alighBottom控件相对另一控件下对齐另一个控件的id
android:layout_alighLeft控件相对另一控件左对齐另一个控件的id
android:layout_alighRight控件相对另一控件右对齐另一个控件的id

 二、案例

1、案例分析

本案例效果图整体布局可以使用相对布局,内部可以解析成两部分内容,第一部分为正中心的按钮1与父布局四个角的按钮2、按钮3、按钮4、按钮5,第二部分为与正中心按钮1相邻四个角的按钮6、按钮7、按钮8、按钮9。
(1)为了方便找到每个按钮,我们会在. xml代码中给每个按钮加上一个android:id属性来区分不同的按钮。例如给按钮1加上id代码如下:

android:id= "@+id/btn1"

同理,给按钮2加上id值为btn2,... ,按钮9加上id值为btn9。

(2)按钮1想要设置成正中心位置,可以在其内部加上如下代码:

android:layout_centerInParent = "true"

(3)按钮2想要设置成整个界面左上角位置,可以在其内部加上如下代码:

android:layout_alignParentLeft= "true"
android:layout_alignParentRight = "true"

 (4)按钮3想要设置成整个界面右上角位置,可以在其内部加上如下代码:

android:layout_alignParentRight = "true"
android:layout_alignParentTop= "true'

 (5)按钮4想要设置成整个界面左下角位置,可以在其内部加上如下代码:

android:layout_alignParentLeft = "true"
android:layout_alignParentBottom= "true"

 (6)按钮5想要设置成整个界面右下角位置,可以在其内部加上如下代码:

android:layout_alignParentRight= "true"
android:layout_alignParentBottom= "true"

(7)按钮6想要设置成按钮1相邻的左上角位置,可以在其内部加上如下代码:

android:layout_toLeftOf = "@id/btn1"
android:layout_above= "@id/btn1"

(8)按钮7想要设置成按钮1相邻的右上角位置,可以在其内部加上如下代码:

android:layout_toRightOf = "@id/btn1"
android:layout_above= "@id/btn1"

(9)按钮8想要设置成按钮1相邻的左下角位置,可以在其内部加上如下代码:

android:layout_toLeftOf = "@id/btn1"
android:layout_below= "@id/btn1"

(10)按钮9想要设置成按钮1相邻的右下角位置,可以在其内部加上如下代码:

android:layout_toRightOf = "@id/btn1"
android:layout_below = "@id/btn1"

2、案例实现

        在Iayout目录下新建线性布局layout_relative.xml文件,并修改MinAetivir.java中的onCreate()方法的语句为setContentView( R. layout. layout_ relative)。 案例布局的完整代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
    android:layout_width = "match_parent"
    android:layout_height = "match_parent">

    <Button
        android:id= "@+id/btn1"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_centerInParent = "true"
        android:text= "按钮1"/>

    <Button
        android:id= "@+id/btn2"
        android:layout_width= "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_alignParentLeft = "true"
        android:layout_alignParentTop = "true"
        android:text = "按钮2"/>

    <Button
        android:id= "@+id/btn3"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_alignParentRight = "true"
        android:layout_alignParentTop= "true"
        android:text = "按钮3"/>

    <Button
        android:id= "@+id/btn4"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_alignParentLeft = "true"
        android:layout_alignParentBottom= "true"
        android:text = "按钮4"/>

    <Button
        android:id= "@+id/btn5"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_alignParentRight = "true"
        android:layout_alignParentBottom= "true"
        android:text = "按钮5"/>

    <Button
        android:id= "@+id/btn6"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_toLeftOf = "@id/btn1"
        android:layout_above = "@id/btn1"
        android:text= "按钮6"/>

    <Button
        android:id= "@+id/btn7"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_toRightOf = "@id/btn1"
        android:layout_above = "@id/btn1"
        android:text= "按钮7"/>

    <Button
        android:id= "@+id/btn8"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_toLeftOf = "@id/btn1"
        android:layout_below = "@id/btn1"
        android:text= "按钮8"/>

    <Button
        android:id= "@+id/btn9"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:layout_toRightOf = "@id/btn1"
        android:layout_below = "@id/btn1"
        android:text= "按钮9"/>

</RelativeLayout>

其运行结果如下:

注意

 android:xxxx、@+id/btn1、@id/btn1的冒号千万千万不要有空格,否则一直报错,改了一大片的辛酸血泪史!!!

所以在敲代码的时候最好不要空格,紧凑敲就行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值