Android笔记(二)布局三:RelativeLayout相对布局

RelativeLayout相对布局

这一部分主要是掌握两点:

1、对于父控件的位置布局。

2、对于同级别控件的位置布局。

如图:Android笔记(二)布局三:RelativeLayout相对布局_第1张图片

一、对于父控件的相对布局

1、选用一个button控件来做演示,拖拽后,删除位置属性我们看button控件会被系统默认安排到什么位置?




    

对于描述button的新信息只有人如下一小段:描述位置的只有标红的两行。

        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:text="Button" />

Android笔记(二)布局三:RelativeLayout相对布局_第2张图片

很明显控件会被系统的安排在左上角的位置。

2、我们接着修改布局文件:增加android:layout_centerHorizontal="true"

        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="Button" />

centerHorizontal从翻译上看是:中间水平布局,我们看看运行效果:

Android笔记(二)布局三:RelativeLayout相对布局_第3张图片

可以看到button控件移动到了最上方中间的位置,纵向方向上并没有改动。

3、我们继续增加代码:

        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Button" />

centerVertical:根据上面的对比不难理解这是纵向中间位置。 

centerVertical+centerHorizontal那就是因该在正中间的位置喽,下面运行一下证明我们的猜测:

Android笔记(二)布局三:RelativeLayout相对布局_第4张图片

哈哈,果真是,是不是很神奇。

4、我们再继续,当我接触Android开发好几年之后才发现有这样一个属性:

        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        anandroid:text="ButtonCenter" />

再看下效果:

Android笔记(二)布局三:RelativeLayout相对布局_第5张图片

也就是说,这一行代码就可以将button按钮成功的放置在正中央的位置。

记得但是我的任务是将这些button的按键对应设备上的Led灯的状态,界面的开发是另一位同事在做,我主要解决底层Linux的驱动以及Android JNI c的过程,大家请原谅我。

5、我们再再继续,为了表示我当年对centerInParent的歉意,在本篇我决定多码字一些。

        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:text="Button" />

请注意代码的变化,高度属性改为match_parent,替换 android:layout_alignParentLeft="true"。

Android笔记(二)布局三:RelativeLayout相对布局_第6张图片

align:对齐 parent:父控件 Left最左端alignParentLeft。

将button控件布置在最左端,并且高度适配父控件的高度。

6、同理我们完成最后一个相对父控件的布局讲解:

Android笔记(二)布局三:RelativeLayout相对布局_第7张图片

对应的全部代码为:




    

我们以button控件为例子讲解了子控件对于父控件的布局。

这里要特别留意6个布局属性的相互作用所产生的效果:

1)android:layout_width="wrap_content"
2)android:layout_height="match_parent"

android:layout_width="match_parent"
android:layout_height="wrap_content"

3)android:layout_alignParentLeft="true"
 4)android:layout_alignParentRight="true"
 5)android:layout_alignParentTop="true"
6) android:layout_alignParentBottom="true"

二、子控件相对于子控件的布局

1、在说明之前我们需要再恢复如图下的布局:

Android笔记(二)布局三:RelativeLayout相对布局_第8张图片

这一次布局代码有些不一样:




    

        android:id="@+id/button_mid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Button" />

多加了一行带有ID的属性,这个button作为我们子控件的相对位置参照物,在代码角度需要id作为参照。

我们继续修改代码:




    

          android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@id/button_mid"
        android:layout_alignLeft="@id/button_mid"

        android:text="Button" />

增加了一个Button控件,同时有相应的两行布局属性:

android:layout_above="@id/button_mid"   针对@id/button_mid控件在其“上部”
android:layout_alignLeft="@id/button_mid"针对@id/button_mid控件“左对齐”

如下:

Android笔记(二)布局三:RelativeLayout相对布局_第9张图片

同理我们可以继续完成下面的视图布局:

Android笔记(二)布局三:RelativeLayout相对布局_第10张图片

修改代码如下:




    

三、总结

1、对于父控件的相对位置属性字符串中都有一个*parent*请留意。

相对主要从四个方位考虑:“上”、“下”、“左”、“右”。

2、子类对子类首先要明确参照物,对参照物增加ID值,对这个参照物布局主要考虑两个方向四中坐标

 

上左

下左

上右

下右

你可能感兴趣的:(Java)