所谓绝对布局(AbsoluteLayout),是指屏幕中所有控件的摆放由开发人员通过设置控件的坐标来指定,控件容器不再负责管理其子控件的位置。由于子控件的位置和布局都是通过坐标来指定,因此AbsoluteLayout类中没有特殊的属性和方法。
下面就先看一个绝对布局的效果图:

其中Main.xml代码如下:
- <?xml version="1.0" encoding="utf-8"?>
- <AbsoluteLayout
- android:id="@+id/AbsoluteLayout01"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="#000000"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <TextView
- android:layout_x="20dip"
- android:layout_y="20dip"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:id="@+id/TextView01"
- android:text="用户名">
- </TextView>
- <TextView
- android:layout_x="20dip"
- android:layout_y="80dip"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:id="@+id/TextView02"
- android:text="密 码">
- </TextView>
- <EditText
- android:layout_x="80dip"
- android:layout_y="20dip"
- android:layout_height="wrap_content"
- android:layout_width="180dip"
- android:id="@+id/EditText01">
- </EditText>
- <EditText
- android:layout_x="80dip"
- android:layout_y="80dip"
- android:layout_height="wrap_content"
- android:layout_width="180dip"
- android:id="@+id/EditText02"
- android:password="true"
- ><!-- android:password设置是否为密码框 -->
- </EditText>
- <Button
- android:layout_x="155dip"
- android:layout_y="140dip"
- android:layout_height="wrap_content"
- android:id="@+id/Button01"
- android:layout_width="wrap_content"
- android:text="确定"
- >
- </Button>
- <Button
- android:layout_x="210dip"
- android:layout_y="140dip"
- android:layout_height="wrap_content"
- android:id="@+id/Button02"
- android:layout_width="wrap_content"
- android:text="取消"
- >
- </Button>
- <ScrollView
- android:layout_x="10dip"
- android:layout_y="200dip"
- android:layout_height="150dip"
- android:layout_width="250dip"
- android:id="@+id/ScrollView01">
- <EditText
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:id="@+id/EditText03"
- android:singleLine="false"
- android:gravity="top"
- >
- </EditText>
- </ScrollView>
- </AbsoluteLayout>
Activity代码为:
- package com.sunchis;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- public class Android extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main); //设置屏幕
- final Button OkButton = (Button) findViewById(R.id.Button01); //获取确定按钮对象
- final Button cancel = (Button) findViewById(R.id.Button02); //获取取消按钮对象
- final EditText uid=(EditText)findViewById(R.id.EditText01); //获取用户名文本框对象
- final EditText pwd=(EditText)findViewById(R.id.EditText02); //获取密码文本框对象
- final EditText log=(EditText)findViewById(R.id.EditText03); //获取登录日志文本框对象
- //OnClickListener为View的内部接口,其实现者负责监听鼠标点击事件
- OkButton.setOnClickListener(
- new View.OnClickListener(){
- public void onClick(View v){ //重写onClick方法
- String uidStr=uid.getText().toString(); //获取用户名文本框的内容
- String pwdStr=pwd.getText().toString(); //获取密码文本框的内容
- log.append("用户名:"+uidStr+" 密码:"+pwdStr+"\n");
- }
- });
- //OnClickListener为View的内部接口,其实现者负责监听鼠标点击事件
- cancel.setOnClickListener(
- new View.OnClickListener(){
- public void onClick(View v){ //重写onClick方法
- uid.setText(""); //清空用户名文本框内容
- pwd.setText(""); //清空密码文本框内容
- }
- });
- }
- }