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"