一、
public class RelativeLayout extends ViewGroup
java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.RelativeLayout
相对布局RelativeLayout_相对布局已知直接子类
android:layout_marginTop="25dip" //顶部距离 
android:gravity="left" //空间布局位置 
android:layout_marginLeft="15dip //距离左边距 
// 相对于给定ID控件 android:layout_above 将该控件的底部置于给定ID的控件之上; android:layout_below 将该控件的底部置于给定ID的控件之下; android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐; android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐; android:layout_alignBaseline 将该控件的baseline与给定ID的baseline对齐; android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐; android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐; android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐; android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐; // 相对于父组件 android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐; android:layout_alignParentBottom 如果为true,将该控件的底部与其父控件的底部对齐; android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐; android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;
// 居中 android:layout_centerHorizontal 如果为true,将该控件的置于水平居中; android:layout_centerVertical 如果为true,将该控件的置于垂直居中; android:layout_centerInParent 如果为true,将该控件的置于父控件的中央; // 指定移动像素 android:layout_marginTop 上偏移的值; android:layout_marginBottom 下偏移的值; android:layout_marginLeft   左偏移的值; android:layout_marginRight   右偏移的值;
二、Activity布局初步 - 相对布局 
1、 相对布局的基本概念 
一个控件的位置它决定于它和其他控件的关系,好处:比较灵活;缺点:掌握比较复杂。 
2、 相对布局常用属性介绍 
这里将这些属性分成4个组,便于理解和记忆。 
a)、以下4个属性设置控件与之间的关系和位置

相对布局RelativeLayout_android_02

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

相对布局RelativeLayout_android_03

 
 

相对布局RelativeLayout_嵌套_04

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

相对布局RelativeLayout_相对布局_05


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

相对布局RelativeLayout_属性设置_06

 


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

相对布局RelativeLayout_相对布局_07



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

相对布局RelativeLayout_嵌套_08



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

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

相对布局RelativeLayout_嵌套_09


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

相对布局RelativeLayout_相对布局_10



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

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

        1.                 android:paddingRight="5dip" 

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


Face your past without regret. Handle your present with confidence.Prepare for future without fear. keep the faith and drop the fear. 面对过去无怨无悔,把握现在充满信心,备战未来无所畏惧。保持信念,克服恐惧!一点一滴的积累,一点一滴的沉淀,学技术需要不断的积淀!