一、
public class

RelativeLayout

extends ViewGroup

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.RelativeLayout

已知直接子类

  1. android:layout_marginTop="25dip" //顶部距离
  2. android:gravity="left" //空间布局位置
  3. android:layout_marginLeft="15dip //距离左边距
  4. // 相对于给定ID控件
  5. android:layout_above 将该控件的底部置于给定ID的控件之上;
  6. android:layout_below 将该控件的底部置于给定ID的控件之下;
  7. android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;
  8. android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐;
  9.  
  10. android:layout_alignBaseline 将该控件的baseline与给定ID的baseline对齐;
  11. android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;
  12. android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;
  13. android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;
  14. android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;
  15.  
  16. // 相对于父组件
  17. android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;
  18. android:layout_alignParentBottom 如果为true,将该控件的底部与其父控件的底部对齐;
  19. android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;
  20. android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;
  21. // 居中
  22. android:layout_centerHorizontal 如果为true,将该控件的置于水平居中;
  23. android:layout_centerVertical 如果为true,将该控件的置于垂直居中;
  24. android:layout_centerInParent 如果为true,将该控件的置于父控件的中央;
  25.  
  26. // 指定移动像素
  27. android:layout_marginTop 上偏移的值;
  28. android:layout_marginBottom 下偏移的值;
  29. android:layout_marginLeft   左偏移的值;
  30. android:layout_marginRight   右偏移的值;
  1. 二、Activity布局初步 相对布局 
    1 相对布局的基本概念 
    一个控件的位置它决定于它和其他控件的关系,好处:比较灵活;缺点:掌握比较复杂。 
    2 相对布局常用属性介绍 
    这里将这些属性分成4个组,便于理解和记忆。 
    a)、以下4个属性设置控件与之间的关系和位置

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

  1.  
  1.  

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

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

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

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

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

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

如果这样的布局要使用LinearLayout的话会比较麻烦和复杂, 
1、 首先需要一个垂直布局方向的LinearLayout,包裹所有的控件; 
2、 然后在第一个LinearLayout中嵌套一个垂直方向的LinearLayout,放在上部分,在这个LinearLayout中放入一个TextView和EditText; 
3、 最后还是在第一个LinearLayout中嵌套一个水平方向的LinearLayout,放在第一个LinearLayout的下部分,在这个LinearLayout中放入两个Button,并且还得让它们居右。 
可参考下图:

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

        <!-- 用相对布局,来布局音量SeekBar上面的图标布局,包括左边控制顺序播放的图标,右边控制随机 播放的图标-->
        <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
        <ImageButton
        android:background="@drawable/loop_none"
        android:id="@+id/loop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        />
        <ImageButton
        android:background="@drawable/random"
        android:id="@+id/random"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
          />
          <!--android:layout_toRightOf意思是将 SeekBar控件置于给定loop循环播放ImageButton的右边,layout_toLeftOf的意思是将SeekBar控件置于给定 random随机播放ImageButton的左边-->
        <SeekBar
        android:id="@+id/volum"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/loop"
        android:layout_toLeftOf="@id/random"
        android:layout_centerVertical="true"
          android:paddingLeft="5dip"

          android:paddingRight="5dip"

        android:progressDrawable="@drawable/seekbar_img"
        android:thumb="@drawable/media_player_progress_button"
        />
        </RelativeLayout>
  1. 下面是上面代码的效果,控制音量的部分,顺序播放图标和随机播放图标相对于seekBar父组件的位置,一左一右。

相对布局RelativeLayout的更多相关文章

  1. Android相对布局(RelativeLayout)

    Android相对布局(RelativeLayout) 备注:这里的视图和元素是等同的概念. RelativeLayout是一个允许子视图相对于其他兄弟视图或是父视图显示的视图组(通过ID指定).每个 ...

  2. Android 自学之相对布局 RelativeLayout

    相对布局(RelativeLayout),相对布局容器内子组件的位置总是相对兄弟组件.父容器来决定的. RelativeLayout的XML属性及相关方法说明 XML属性 相关方法 说明 androi ...

  3. .Net程序猿玩转Android开发---(7)相对布局RelativeLayout

                 相对布局RelativeLayout是Android布局中一个比較经常使用的控件,使用该控件能够布局出适合各种屏幕分辨率的布局,RelativeLayout採用相对位置进行 ...

  4. Xamarin.Forms的相对布局RelativeLayout

    Xamarin.Forms的相对布局RelativeLayout   相对布局RelativeLayout是App中常用的布局方式.它是以界面中的某个元素为基准,设置另外一个元素的位置和大小.通过这种 ...

  5. Android学习笔记(14):相对布局RelativeLayout

    相对布局RelativeLayout,继承自ViewGroup.相对布局的子组件的位置总是相对于兄弟组件或者父容器决定的. RelativeLayout支持的XML属性: android:gravit ...

  6. Android布局_相对布局RelativeLayout

    一.RelativeLayout(相对布局)概述 RelativeLayout是相对布局控件,它包含的子控件将以控件之间的相对位置或者子类控件相对父类容器的位置的方式排列 二.RelativeLayo ...

  7. 线性布局LinearLayout和相对布局RelativeLayout 之间的比较

    LinearLayout和RelativeLayout之间: 共有属性:java代码中通过btn1关联次控件android:id="@+id/btn1" 控件宽度android:l ...

  8. 定义自己的布局RelativeLayout 绘制网格线

    在Android画线必须由一个载体,无论是控制,无论是布局.实际上它们是从继承View.由画线的方式自己的控制或布局的定义是最常见的. 以下是在其定义中的小样本实现RelativeLayout绘制网络 ...

  9. Android开发之布局--RelativeLayout布局

    RelativeLayout 相对布局 true或false属性 Layout_centerHorizontal   当控件位于父控件的横向中间位置 Layout_centerVertical   当 ...

随机推荐

  1. 如何让Advanced Installer卸载软件时保留一些文件

    http://www.advancedinstaller.com/user-guide/qa-keep-file.html You need to modify some of the resourc ...

  2. Android里面的命名规范

    前前后后接触安卓也有一段时间了,但是对于Android命名规范这块一直没有太注意过.导致有的时候写出来的代码,前后的风格根本不一样,今天在网上查了一下,正好对自己来说可以好好的总结一下. 首先在And ...

  3. Windows PowerShell ISE

    Windows PowerShell 集成脚本环境 (ISE) 是 Windows PowerShell 的主机应用程序.在 Windows PowerShell ISE 中,可以在单一 Window ...

  4. MVC4.0网站发布和部署到IIS7.0上的方法【转:http://www.th7.cn/Program/net/201403/183756.shtml】

    最近在研究MVC4,使用vs2010,开发的站点在发布和部署到iis7上的过程中遇到了很多问题,现在将解决的过程记录下来,以便日后参考,整个过程主要以截图形式呈现 vs2010的安装和mvc4的安装不 ...

  5. UIButton之Block回调

    本文主要介绍了两种改写UIButton的点击事件方法——继承UIButton跟给UIButton添加一个分类.附代码 方法一:继承UIButton UIButtonBlock.h文件 如下 #impo ...

  6. Orchard工作原理

    概述 本文翻译仅供学习之用,了解Orchard工作原理设计思想.技术点及关键词,如有缺漏请不吝指正.鉴于能力有限定有诸多曲解或不完整的地方,请海涵.不定时完善整理. CMS不像常规的web程序,它更像 ...

  7. angular2 国际化实现

    angular2国际化通过管道(pipe)的形式实现下载ng2-translate 如何使用可以参照https://github.com/ocombe/ng2-translate 自己写了一个小DEM ...

  8. Matlab 支持向量机(SVM)实现多分类

    1.首先,你需要安装完成Matlab. 2.将libsvm-3.17.zip和drtoolbox.tar文件解压到:libsvm-3.17文件夹和drtoolbox,并放到MATLAB的工具箱安装目录 ...

  9. snmp数据包分析

    今天看了一下snmp数据包的报文格式,用wireshark抓了两个数据包来分析. 先说说snmp get-request的书报包格式吧,get-next-request,get-response,se ...

  10. Java BigDecimal大数字操作

    在java中提供了大数字的操作类,即java.math.BinInteger类和java.math.BigDecimal类.这两个类用于高精度计算,其中BigInteger类是针对大整数的处理类,而B ...