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 离某元素上边缘的距离

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

 

第13章、布局Layouts之RelativeLayout相对布局(从零開始学Android)的更多相关文章

  1. 从零開始学android&lt;RelativeLayout相对布局.十六.&gt;

    相对布局管理器指的是參考某一其它控件进行摆放,能够通过控制,将组件摆放在一个指定參考组件的上.下.左.右等位置,这些能够直接通过各个组件提供的属性完毕. 以下介绍一下各个方法的基本使用 No. 属性名 ...

  2. 从零開始学android&lt;使用嵌套布局实现计算器界面.十七.&gt;

    所谓的嵌套布局就是在一个文件里嵌套多个布局文件 <span style="font-size:18px;"> <LinearLayout android:layo ...

  3. 第13章 Swing程序组件----常用布局管理器

    在Swing中,每个组件在容器中都有一个具体的位置和大小,而在容器中摆放各种组件时很难判断其具体位置和大小.布局管理器提供了Swing组件安排.展示在容器中的方法及基本的布局功能. Swing提供的常 ...

  4. Android用户界面布局(layouts)

    Android用户界面布局(layouts) 备注:view理解为视图 一个布局定义了用户界面的可视结构,比如activity的UI或是APP widget的UI,我们可以用下面两种方式来声明布局: ...

  5. BootStrap入门教程 (一) :手脚架Scaffolding(全局样式(Global Style),格网系统(Grid System),流式格网(Fluid grid System),自定义(Customing),布局(Layouts))

    2011年,twitter的“一小撮”工程师为了提高他们内部的分析和管理能力,用业余时间为他们的产品构建了一套易用.优雅.灵活.可扩展的前端工具集--BootStrap.Bootstrap由MARK ...

  6. 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化

    第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...

  7. Android零基础入门第28节:轻松掌握RelativeLayout相对布局

    原文:Android零基础入门第28节:轻松掌握RelativeLayout相对布局 在前面三期中我们对LinearLayout进行了详细的解析,LinearLayout也是我们用的比较多的一个布局. ...

  8. Android开发重点难点1:RelativeLayout(相对布局)详解

    前言 啦啦啦~博主又推出了一个新的系列啦~ 之前的Android开发系列主要以完成实验的过程为主,经常会综合许多知识来写,所以难免会有知识点的交杂,给人一种混乱的感觉. 所以博主推出“重点难点”系列, ...

  9. Android开发3:Intent、Bundle的使用和ListView的应用 、RelativeLayout(相对布局)简述(简单通讯录的实现)

    前言 啦啦啦~博主又来骚扰大家啦~大家是不是感觉上次的Android开发博文有点长呢~主要是因为博主也是小白,在做实验的过程中查询了很多很多概念,努力去理解每一个知识点,才完成了最终的实验.还有就是随 ...

随机推荐

  1. 【Android】ScrollView+GridView 显示问题

    在使用Android的ScrollView里面嵌套GridView时,设置android:layout_height="wrap_content"属性,运行界面的效果不会出现全部数 ...

  2. C++中,引用作为函数参数

    引用作为函数参数 C++之所以增加引用类型, 主要是把它作为函数参数,以扩充函数传递数据的功能. ———————————————————— c++,函数传参:(1)将变量名作为实参和形参.这时传给形参 ...

  3. BZOJ 2718: [Violet 4]毕业旅行( 最长反链 )

    一不小心速度就成了#1.... 这道题显然是求最长反链, 最长反链=最小链覆盖.最小链覆盖就是先做一次floyd传递闭包, 再求最小路径覆盖. 最小路径覆盖=N - 二分图最大匹配. 所以把所有点拆成 ...

  4. javascript 学习随笔3

    <html> <head> <script type="text/javascript"> function startTime() { var ...

  5. Ural 1079 - Maximum

    Consider the sequence of numbers ai, i = 0, 1, 2, …, which satisfies the following requirements: a0  ...

  6. django笔记(二)

    Model many-to-many可以通过through来定义详细信息. 表结构: property django可以用F和Q来配合查找,F可以用于同一个model不同field之间进行比较,可以对 ...

  7. 【转】OpenCV中使用神经网络 CvANN_MLP

    原文见:http://blog.csdn.net/xiaowei_cqu/article/details/9027617 OpenCV的ml模块实现了人工神经网络(Artificial Neural ...

  8. eclipse 找不到application选项

    处理如下:Window-Preferences-Run/Debug-Perspectives 中的 And Build修改为如下

  9. Webservice-WSDL详解(三)

    怎样向别人介绍WS的功能呢?一般咱们会写接口文档,亦或口头告诉使用的人.这些方式都存在问题:其中一个我上篇中说过,客户端是无法直接使用服务端接口的:二是程序员在电脑前,想使用WS时,他们的工具(如Ec ...

  10. CString 操作指南

    过阅读本文你可以学习如何有效地使用 CString. CString 是一种很有用的数据类型.它们很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作的时候方便了很多.不管怎样,使用CStri ...