天天看點

相對布局RelativeLayout

一、

public class

RelativeLayout

extends ViewGroup

java.lang.Object
   ↳ android.view.View
android.view.ViewGroup
android.widget.RelativeLayout
相對布局RelativeLayout

已知直接子類

DialerFilter, TwoLineListItem

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
但是上面4個屬性并沒有設定各個控件之間是否對齊。 
示例1:将控件A放置在控件B的上面,則使用android:layout_above屬性,控件布局的效果可以有以下這麼兩種情況。 
1、 控件A與控件B對齊,并且控件A是在控件B的上面。 
2、 控件A沒有與控件B對齊,但是控件A又确實是在控件B的上面。       
相對布局RelativeLayout
相對布局RelativeLayout
b)、以下5個屬性,設定的是控件與控件之間對齊的方式(是頂部、底部還是左、右對齊)。 

      
相對布局RelativeLayout

示例2:在示例1的基礎上,設定控件A放置在控件B的上面,使用android:layout_above屬性,并且控件A的左邊邊緣與控件B的左邊邊緣對齊,使用android:layout_alignLeft屬性。 

相對布局RelativeLayout

c)、以下4個屬性設定控件與父控件之間對齊的方式(是頂部、底部還是左、右對齊)。 

相對布局RelativeLayout

d)、以下4個屬性設定控件的方向。 

相對布局RelativeLayout

可以通過組合這些屬性來實作各種各樣的布局。 

注:以上屬性和其他更多屬性的作用都能在android的幫助文檔中找到; 

示例3:假如要實作一個如下圖這樣布局的程式 

相對布局RelativeLayout

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.                   android:background="@drawable/random"
      1.                   android:id="@+id/random"
      1.                   android:layout_alignParentRight="true"
        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. 面對過去無怨無悔,把握現在充滿信心,備戰未來無所畏懼。保持信念,克服恐懼!一點一滴的積累,一點一滴的沉澱,學技術需要不斷的積澱!