zoukankan      html  css  js  c++  java
  • 第13章、布局Layouts之RelativeLayout相对布局(从零開始学Android)

      RelativeLayout相对布局

      RelativeLayout是一种相对布局,控件的位置是依照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最经常使用,也是最灵活的一种布局。

      

      我们以下通过XML布局和Java代码布局两种方式分别举例:

    一、XML方式布局

      1、创建一个空白Activity

      

      2、打开“res/layout/activity_main.xml”文件,改动成下面代码。

      

      (1)第①部分

      <?xml version="1.0" encoding="utf-8">,每一个XML文档都由XML序言開始,在前面的代码中的第一行便是XML序言,<?xml version="1.0">。这行代码表示依照1.0版本号的XML规则进行解析。encoding = "utf-8"表示此xml文件採用utf-8的编码格式。编码格式也能够是GB2312。

      假设你对此不太明确,请參阅相关XML文档。

      (2)第②部分

      <RelativeLayout…… 表示採用相对布局管理器。

      (3)第③部分

      android:layout_width="match_parent" android:layout_height="match_parent"表示布局管理器宽度和高充将填充整个屏幕宽度和高度。

      3、插入三个button。

      插入三个button,并分别设置其文本为:“第一个button”、“第二个button”、“第三个button”。

      

      我们下一步设置第一个button距离左边、上边各20dp,第二个button距离第一个button左边、上边各10dp;第三个button距离第二个button上边10dp,与第二个button左边对齐。

      4、打开“res/layout/activity_main.xml”文件,改动成下面代码。

      

      (1)第①部分

      设置第一个button,以父元素为基准,贴紧左上,距离20dp。  

     <Button
            android:id="@+id/button1"
           android:layout_width="wrap_content"                //宽度匹配内容
            android:layout_height="wrap_content"               //高度匹配内容  
            android:layout_alignParentLeft="true"                         //贴紧父元素左边
            android:layout_alignParentTop="true"               //贴紧父元素上边 
            android:layout_marginLeft="20dp"                              //设置左间距20dp
            android:layout_marginTop="20dp"                               //设置上间距20dp
            android:text="第一个button" />

      (2)第②部分

      设置第二个button,以第一个button为基准,在第一个button以下,对齐第一个button的右边,上距离15dp。

    <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"              //宽度匹配内容
            android:layout_height="wrap_content"              //高度匹配内容
            android:layout_below="@+id/button1"              //位置在第一个按钮的以下
            android:layout_toRightOf="@+id/button1"            //与第一个按钮的右边对齐
            android:layout_marginTop="15dp"                            //设置上间距15dp
         android:text="第二个button" />
    

      (3)第③部分  

      设置第三个button,以第二个button为基准,在第二个button以下,对齐第二个button的左边,距离15dp。

        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"              //宽度匹配内容
            android:layout_height="wrap_content"              //高度匹配内容
            android:layout_below="@+id/button2"              //位置在第二个按钮的以下
            android:layout_toLeftOf="@+id/button2"            //与第二个按钮的左边对齐
            android:layout_marginTop="15dp"                //设置上间距15dp        
            android:text="第三个button" />


      终于显示效果例如以下:

      

      附:相对布局经常使用属性介绍

      这里将这些属性分成组,便于理解和记忆。
      a)、第一类:属性值为true或false
      android:layout_centerHrizontal 水平居中
      android:layout_centerVertical 垂直居中
      android:layout_centerInparent 相对于父元素全然居中
      android:layout_alignParentBottom 贴紧父元素的下边缘
      android:layout_alignParentLeft 贴紧父元素的左边缘
      android:layout_alignParentRight 贴紧父元素的右边缘
      android:layout_alignParentTop 贴紧父元素的上边缘  

      b)、第二类:属性值必须为id的引用名“@id/id-name
      android:layout_below 在某元素的下方
      android:layout_above 在某元素的的上方
      android:layout_toLeftOf 在某元素的左边
      android:layout_toRightOf 在某元素的右边
      android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
      android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
      android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
      android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐



      c)、第三类:属性值为详细的像素值,如30dip,40px
      android:layout_marginBottom 离某元素底边缘的距离
      android:layout_marginLeft 离某元素左边缘的距离
      android:layout_marginRight 离某元素右边缘的距离
      android:layout_marginTop 离某元素上边缘的距离

      能够通过组合这些属性来实现各种各样的布局。

     

  • 相关阅读:
    Climbing Stairs
    交换排序
    解析Ceph: Snapshot
    OpenStack Hacker养成指南
    从UnitedStack OS 1.0 Preview试用申请问卷调查学习OpenStack
    Tun/Tap interface tutorial
    Linux下的TUN/TAP编程
    基于KVM的虚拟化研究及应用
    Linux 上的基础网络设备详解
    linux下TUN/TAP虚拟网卡的使用
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4248115.html
Copyright © 2011-2022 走看看