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中动态设置控件的间距
这个程序实现了一个梅花的相对布局

- <RelativeLayoutxmlns: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>
- importandroid.os.Bundle;
- publicclassRelativeLayoutTestextendsActivity
- {
- @Override
- publicvoidonCreate(BundlesavedInstanceState)
- {
- 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);
- }
- }
源码资料下载:
本文通过一个梅花形状的实例详细介绍了如何使用Android的RelativeLayout进行组件布局。布局中的五个TextView组件分别代表梅花的五瓣花瓣,通过相对定位实现了特定的排列效果。
6963

被折叠的 条评论
为什么被折叠?



