android-UI学习之RelativeLayout

1.根据android studio2.2 创建的demo工程,学习其中的组件布局级相关属性

1)layout相当于桌面开发里的窗口一样,是窗口布局文件,是所有组件的承载,组件也都是放置再其中。在主程序中调用

setContentView(R.layout.main)就可以在APP中显示这个窗口,另外使用这个接口也可以完成多个layout的切换。

如下面例子所示,在窗体中放置了一个textview组件,其中的文字是"Hello world"

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="
http://schemas.android.com/apk/res/android"
    xmlns:tools="
http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent" //和父窗口对齐
    android:layout_height="match_parent"//和父窗口对齐
    android:paddingBottom="@dimen/activity_vertical_margin" //指控件中内容距离控件底边距离,边距在value的dimen文件里有定义,相当于宏定义 :)
    android:paddingLeft="@dimen/activity_horizontal_margin"//边距在value的dimen文件里有定义,相当于宏定义 :)
    android:paddingRight="@dimen/activity_horizontal_margin"//边距在value的dimen文件里有定义,相当于宏定义 :)
    android:paddingTop="@dimen/activity_vertical_margin"//边距在value的dimen文件里有定义,相当于宏定义 :)
    tools:context="com.example.z00189845.emptyactivity.MainActivity">

    <TextView
        android:layout_width="wrap_content" //内容包裹,意思即按照content文本的大小调整宽度和高度
        android:layout_height="wrap_content"//内容包裹,意思即按照content文本的大小调整宽度和高度
        android:text="Hello World!"
        android:layout_alignParentTop="true" //将控件的上边缘和父控件的上边缘对齐
        android:layout_alignParentLeft="true" //控件的左边缘和父控件的左边缘对齐
        android:layout_alignParentStart="true"//将空间对齐到父控件的头部
        android:id="@+id/textView" />
</RelativeLayout>

拖动后的textview的属性,将鼠标放置再textview组件之上,鼠标编程手指的形状就可以拖动控件了,不要太土哦 :)

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:id="@+id/textView"
        android:layout_marginLeft="46dp"
        android:layout_marginStart="46dp"
        android:layout_marginTop="61dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

       拖动组价之后可以看到,新增了几个属性,表示离各个边界的距离


2)layout各个属性的解释

xmlns 属性xmlns 属性可以在文档中定义一个或多个可供选择的命名空间,类似于CPP里的namespace std :)

android:id="@+id/layout01":定义了布局的变量名称为layout01,会自动写进R.java,在R.java文件中会生成内部类id,可在主程序里面调用R.id.layout01来获取这个布局变量实体

android:layout_above="@id/xxx"  --将控件置于给定ID控件之上
android:layout_below="@id/xxx"  --将控件置于给定ID控件之下

android:layout_toLeftOf="@id/xxx"  --将控件的右边缘和给定ID控件的左边缘对齐
android:layout_toRightOf="@id/xxx"  --将控件的左边缘和给定ID控件的右边缘对齐

android:layout_alignLeft="@id/xxx"  --将控件的左边缘和给定ID控件的左边缘对齐
android:layout_alignTop="@id/xxx"  --将控件的上边缘和给定ID控件的上边缘对齐
android:layout_alignRight="@id/xxx"  --将控件的右边缘和给定ID控件的右边缘对齐
android:layout_alignBottom="@id/xxx"  --将控件的底边缘和给定ID控件的底边缘对齐
android:layout_alignParentLeft="true"  --将控件的左边缘和父控件的左边缘对齐
android:layout_alignParentTop="true"  --将控件的上边缘和父控件的上边缘对齐
android:layout_alignParentRight="true"  --将控件的右边缘和父控件的右边缘对齐
android:layout_alignParentBottom="true" --将控件的底边缘和父控件的底边缘对齐
android:layout_centerInParent="true"  --将控件置于父控件的中心位置
android:layout_centerHorizontal="true"  --将控件置于水平方向的中心位置
android:layout_centerVertical="true"  --将控件置于垂直方向的中心位置

其中很重要的android:layout_alignParentLeft="true"  --部分属性在相对布局里才有,绝对布局没有 :)

版本4.2以上相对布局新属性
android:layout_alignStart---------------------将控件对齐给定ID控件的头部
android:layout_alignEnd----------------------将控件对齐给定ID控件的尾部
android:layout_alignParentStart--------------将控件对齐到父控件的头部
android:layout_alignParentEnd---------------将控件对齐到父控件的尾部

3)padding的用法

paddingleft用法:paddingleft:10dp;  这个意思距离左边距10像素
paddingright用法:paddingright:10dp; 这个意思距离右补距10像素
paddingtop用法:paddintop:10dp; 这个意思距离顶边距10像素
paddingbottom用法:paddingbottom:10dp; 这个意思距离低边距10像素

4)@dimen/activity_vertical_margin这个的意思就是在你的values文件夹下面的dimens文件里面有一个name叫做activity_vertical_margin的项,这个项里面值就是你android:paddingBottom的值,比如<dimen name="activity_vertical_margin">10dp</dimen>          android:paddingBottom=“@dimen/activity_vertical_margin”就等于  android:paddingBottom="10dp"



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值