一.布局管理器
A.线性布局(LinearLayout)
最常用的属性:
andriod:id, andriod:background ,andriod:orientation(=horizonal,vertical)
andriod:layout_width ,andriod:layout_height , andriod:layout_margin , andriod:layout_padding
android:gravity设置布局方式,默认是从父元素的左上角布局,gravity=bottom从底部(左下角)布局,center从父元素的正中间布局,center_vertical竖直居中,center-horizontal水平居中
android:layout_weight:设置权重
首先是MainActivity.java文件,这是一个比较重要的文件,里面包含了一个onCreate方法,在该方法里面有一个activity_main方法.
按住ctrl键,单击可以打开activity_main.xml文件.里面显示的是MainActivity.java的页面布局
在Androidmanifests.xml文件里可以看到设置了MainActivity为一般正常启动(即点击图标启动应用)“android.intent.category.LAUNCHER”。
在activity_main.xml文件里再加上一个线性布局,一个黑色小方块,再运行,就会得到下面的界面
一个完整的程序如下:通过设置权重值达到水平分割父元素的效果
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" //将最外层的布局改为垂直布局
tools:context=".MainActivity">
<LinearLayout
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#000000">
<View
android:layout_margin="20dp"//外边距设为20
android:background="#ff0033"
android:layout_height="match_parent"//宽高都匹配父元素
android:layout_width="match_parent" />
</LinearLayout>
<LinearLayout//因为父元素设置了垂直布局,所以会挪到下一行
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="horizontal"//设置水平布局
android:background="#0066ff"
android:layout_marginTop="10dp"//设置上边距10
android:layout_marginLeft="10dp"//设置左右外边距10
android:layout_marginRight="10dp"
>
<View
android:layout_width="0dp"//和下一个view的宽度值一样设为0dp
android:layout_height="match_parent"
android:background="#000"
android:layout_weight="1"/>//和下一个view的权重值一样设为1,两个view将平分父元素剩下的宽度,此时剩下的宽度是整个父元素的宽,因为两个view的width都为0
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="#FF0033"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
如果将程序改正下面的,左边的宽度设为50,结果如下
<View
android:layout_width="50dp"
android:layout_height="match_parent"
android:background="#000"
android:layout_weight="1"/>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="#FF0033"
android:layout_weight="1"/>
2.相对布局(RelativeLayout)
常用属性
andriod:layout_toLeftOf:在某元素的左边
android:layout_toRightOf:在某元素的右边
android:layout_alignBottom:本元素和某元素的下边缘对齐
android:layout_alignParentBottom:本元素的下边缘和父元素的下边缘对齐
android:layout_below:在某元素的下方
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<View
android:id="@+id/view_1"
android:layout_height="100dp"
android:layout_width="100dp"
android:background="#2D3A81"
/>
<View
android:id="@+id/view_2"
android:layout_height="100dp"
android:layout_width="100dp"
android:background="#B8952C"
android:layout_below="@id/view_1"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@+id/view_2"
android:background="#FF5722">
<View
android:id="@+id/view_4"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="#19565E"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
android:background="#00BCD4"
>
<View
android:id="@+id/view_5"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:background="#5C30AA"
/>
<View
android:id="@+id/view_6"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@+id/view_5"
android:layout_marginLeft="10dp"
android:background="#88D134"
/>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
二.Textview
常见用处:文字大小,颜色,显示不下使用,文字+icon(图标),中划线,下划线,跑马灯
三.Button
常见用处:文字大小,颜色,自定义背景形状,自定义按压效果,点击事件