Android学习开发之路8——RelativeLayout

本文通过一个梅花形状的实例详细介绍了如何使用Android的RelativeLayout进行组件布局。布局中的五个TextView组件分别代表梅花的五瓣花瓣,通过相对定位实现了特定的排列效果。

RelativeLayout为相对布局,这种布局内的组件总是相对兄弟组件、父容器来确定的,在定义控件的位置时,需要参照其他控件的位置。

这个程序实现了一个梅花的相对布局

<?xmlversion="1.0"encoding="utf-8"?>
  1. <RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  2. android:orientation="vertical"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. >
  6. <!--定义该组件位于父容器中间-->
  7. <TextView
  8. android:id="@+id/view01"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:background="@drawable/leaf"
  12. android:layout_centerInParent="true"
  13. />
  14. <!--定义该组件位于view01组件的上方与view01左对齐-->
  15. <TextView
  16. android:id="@+id/view02"
  17. android:layout_width="wrap_content"
  18. android:layout_height="wrap_content"
  19. android:background="@drawable/leaf"
  20. android:layout_above="@id/view01"
  21. android:layout_alignLeft="@id/view01"
  22. />
  23. <!--定义该组件位于view01组件的下方-->
  24. <TextView
  25. android:id="@+id/view03"
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"
  28. android:background="@drawable/leaf"
  29. android:layout_below="@id/view01"
  30. android:layout_alignLeft="@id/view01"
  31. />
  32. <!--定义该组件位于view01组件的左边-->
  33. <TextView
  34. android:id="@+id/view04"
  35. android:layout_width="wrap_content"
  36. android:layout_height="wrap_content"
  37. android:background="@drawable/leaf"
  38. android:layout_toLeftOf="@id/view01"
  39. android:layout_alignTop="@id/view01"
  40. />
  41. <!--定义该组件位于view01组件的右边-->
  42. <TextView
  43. android:id="@+id/view05"
  44. android:layout_width="wrap_content"
  45. android:layout_height="wrap_content"
  46. android:background="@drawable/leaf"
  47. android:layout_toRightOf="@id/view01"
  48. android:layout_alignTop="@id/view01"
  49. />
  50. </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中动态设置控件的间距

importandroid.app.Activity;
  1. importandroid.os.Bundle;
  2. publicclassRelativeLayoutTestextendsActivity
  3. {
  4. @Override
  5. publicvoidonCreate(BundlesavedInstanceState)
  6. {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.main);
  9. findViewById(R.id.view01).setPadding(5,5,5,5);//设置各个控件之间的间距
  10. findViewById(R.id.view02).setPadding(5,5,5,5);
  11. findViewById(R.id.view03).setPadding(5,5,5,5);
  12. findViewById(R.id.view04).setPadding(5,5,5,5);
  13. findViewById(R.id.view05).setPadding(5,5,5,5);
  14. }
  1. }

源码资料下载:

Android 应用功能150多个实例源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值