RelativeLayout為相對布局,這種布局內的組件總是相對兄弟組件、父容器來確定的,在定義控制項的位置時,需要參照其他控制項的位置。
這個程式實現了一個梅花的相對布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><!-- 定義該組件位於父容器中間 --><TextView android:id="@+id/view01"android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/leaf"android:layout_centerInParent="true"/><!-- 定義該組件位於view01組件的上方 與view01靠左對齊--><TextView android:id="@+id/view02"android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/leaf"android:layout_above="@id/view01"android:layout_alignLeft="@id/view01"/><!-- 定義該組件位於view01組件的下方 --><TextView android:id="@+id/view03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/leaf"android:layout_below="@id/view01"android:layout_alignLeft="@id/view01"/><!-- 定義該組件位於view01組件的左邊 --><TextView android:id="@+id/view04"android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/leaf"android:layout_toLeftOf="@id/view01"android:layout_alignTop="@id/view01"/><!-- 定義該組件位於view01組件的右邊 --><TextView android:id="@+id/view05"android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/leaf"android:layout_toRightOf="@id/view01"android:layout_alignTop="@id/view01"/></RelativeLayout>
在activity中動態設定控制項的間距
import android.app.Activity;import android.os.Bundle;public class RelativeLayoutTest extends Activity{@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);findViewById(R.id.view01).setPadding(5, 5 , 5 , 5); //設定各個控制項之間的間距findViewById(R.id.view02).setPadding(5, 5 , 5 , 5);findViewById(R.id.view03).setPadding(5, 5 , 5 , 5);findViewById(R.id.view04).setPadding(5, 5 , 5 , 5);findViewById(R.id.view05).setPadding(5, 5 , 5 , 5);}}