1.代码方式
编写MainActivity方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//根布局设置为线性布局,新建一个LinearLayout
LinearLayout ll = new LinearLayout(this);
//通过setLayoutParams方法设置宽高,参数新建一个LayoutParams,内参数有两个MATCH_PARENT分别为宽和高
ll.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
//通过setBackgroundColor方法设置背景色为红色
ll.setBackgroundColor(Color.RED);
//指定此activity的内容视图为该线性布局
setContentView(ll);
}
效果
缺点:代码繁琐,耦合性强
2.线性布局
先在layout下新建一个layout resource file,root element 选为LinearLayout
布局属性:
//宽度
android:layout_height="wrap_content"
//高度
android:layout_width="match_parent"
//外边距
android:layout_margin="20dp"
//内边距
android:padding="20dp"
//字体大小
android:textSize="30sp"
值:
200dp:常用于xml
200px:和dp一样,像素单位
200sp:常用于字体
布局属性和值:
//方向
android:orientation="vertical"
"vertical":垂直的
"horizontal":水平的
//权重
android:layout_weight="1"
有权重的后摆放,使用权重请将对应的宽高属性设置为0dp(水平为宽,垂直为高)
//重力
android:layout_gravity="bottom"
//设置重力设置到哪里
2.相对布局
先在layout下新建一个layout resource file,root element 选为LinearLayout
位置布局属性:
//相对于父容器居中上下左右
android:layout_centerInParent="true"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
//相对于父容器水平居中
android:layout_centerHorizontal="true"
//相对于父容器追至居中
android:layout_centerVertical="true"
id设置属性:
//设置相对用的id,名为center
android:id="@+id/center"
相对布局属性,在参照物的某边:
//设置在center左边
android:layout_toLeftOf="@+id/center"
//设置在center右边
android:layout_toRightOf="@+id/center"
//设置在center上面
android:layout_above="@+id/center"
//设置在center下面
android:layout_below="@+id/center"
相对布局属性,在参照物的某边线对齐:
//设置与center上边线对其
android:layout_alignTop="@+id/center"
//设置与center下边线对其
android:layout_alignBottom="@+id/center"
//设置与center右边线对其
android:layout_alignRight="@+id/center"
//设置与center左边线对其
android:layout_alignLeft="@+id/center"