Android学习第二天------布局方式(相对布局、网格布局、绝对布局)

一、相对布局(RelativeLayout)

相对布局指的是,组件的位置相对于父容器或兄弟组件的位置而定。

XML文件控制

下面的代码表示创建五个按钮分别放置四角和中心

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     >
    <!--  android:gravity="right"
    android:ignoreGravity="@+id/b1" -->
    <Button 
        android:id="@+id/b1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1"
        />
     <Button 
        android:id="@+id/b2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="2"
        />
      <Button
        android:id="@+id/b3" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/b1"
        android:layout_centerInParent="true"
        android:text="3"
        />
       <Button
        android:id="@+id/b4" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/b3"
        android:layout_alignParentRight="true"
        android:text="4"
        />
        <Button 
        android:id="@+id/b5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/b3"
        android:text="5"
        />

</RelativeLayout>
java代码实现

//创建布局容器
		RelativeLayout relativeLayout=new RelativeLayout(this);
		//创建按钮
		Button button=new Button(this);
		button.setText("按钮1");
		//设置按钮id
		button.setId(1);
		//设置组件宽度,高度
		RelativeLayout.LayoutParams layoutParams=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
		//设置组件的相对位置
		layoutParams.addRule(RelativeLayout.BELOW, button.getId());
		Button button2=new Button(this);
		button2.setText("按钮2");
		button2.setLayoutParams(layoutParams);
		relativeLayout.addView(button);
		relativeLayout.addView(button2);
		setContentView(relativeLayout);
二、网格布局(GridLayout)

网格布局是将页面分割成几行几列的空间

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:columnCount="3"列数
    android:rowCount="3"行数
     >
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"在第0列(行数列数都是从0开始)
        android:layout_row="0"在第0行
        android:text="1"
        />
	 <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="1"
        android:text="2"
        />
	  <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="2"
        android:layout_row="1"
        android:text="3"
        />
	   <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="2"
        android:layout_row="0"
        android:text="4"
        />

	   <Button
	       android:layout_width="wrap_content"
	       android:layout_height="wrap_content"
	       android:layout_column="1"
	       android:layout_row="0"
	       android:layout_rowSpan="2"合并两行
	       android:layout_gravity="fill"填充于父容器
	       android:text="5" />
	   
</GridLayout>
java代码实现

//创建网格布局
		GridLayout gridLayout=new GridLayout(this);
		//设置行数列数
		gridLayout.setRowCount(2);
		gridLayout.setColumnCount(3);
		//设置组件放的位置
		GridLayout.Spec rowcount=GridLayout.spec(0);
		GridLayout.Spec colcount=GridLayout.spec(0);
		GridLayout.LayoutParams layoutParams=new GridLayout.LayoutParams(rowcount,colcount);
		
		GridLayout.Spec rowcount1=GridLayout.spec(1);
		GridLayout.Spec colcount1=GridLayout.spec(2);
		GridLayout.LayoutParams layoutParams1=new GridLayout.LayoutParams(rowcount1,colcount1);
		Button button=new Button(this);
		button.setText("1");
		button.setLayoutParams(layoutParams);
		gridLayout.addView(button);
		
		Button button1=new Button(this);
		button1.setText("2");
		button1.setLayoutParams(layoutParams1);
		gridLayout.addView(button1);
		
		setContentView(gridLayout);
三、绝对布局

通过坐标设定组件的位置

XML文件控制

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <Button 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="100dp"
        android:layout_y="200dp"
        />

</AbsoluteLayout>

java代码实现

AbsoluteLayout absoluteLayout=new AbsoluteLayout(this);
		Button button=new Button(this);
		button.setX(100.0f);
		button.setY(200.0f);
		absoluteLayout.addView(button);
		setContentView(absoluteLayout);






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值