今天我学习了下常见的布局上一讲已经接触了线性布局 这次我们主要来学学: 包括表格布局 相对布局 单帧布局 坐标布局 还做了一个常用控件的事件处理
1表格布局:(TableLayout)是以行列的形式来管理子控件的 在表格布局的每一行可以是一个view控件或者是一个TableRow控件 而TableRow控件中还可以添加子控件
先来看下效果图
<!--[if !supportLineBreakNewLine]-->
<!--[endif]--><?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:text="表头" /> <TableRow android:gravity="center" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="第0列" > </TextView> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="第1列" > </TextView> </TableRow> <TableRow android:gravity="center" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮2" /> </TableRow>
</TableLayout> 相对布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="中间的按钮,很长很长很长" android:layout_centerInParent="true" > </Button> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="上面的按钮" android:layout_above="@id/button1" android:layout_alignLeft="@id/button1" > </Button> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="下面的按钮" android:layout_below="@id/button1" android:layout_alignRight="@id/button1" > </Button>
</RelativeLayout>单帧布局
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/big"
>
</ImageView>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/center"
>
</ImageView>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/small"
>
</ImageView>
</FrameLayout>
坐标布局
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用户名:" android:layout_x="10px" android:layout_y="20px" > </TextView> <EditText android:layout_width="90px" android:layout_height="wrap_content" android:layout_x="70px" android:layout_y="10px" > </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密 码:" android:layout_x="10px" android:layout_y="75px" > </TextView> <EditText android:layout_width="90px" android:layout_height="wrap_content" android:layout_x="70px" android:layout_y="60px" > </EditText> </AbsoluteLayout>
再写一个事件监听的程序
效果图
布局文件main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/textView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="您没有点击任何按钮" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="普通按钮" > </Button> <ImageButton android:id="@+id/imageButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/img" > </ImageButton> <ToggleButton android:id="@+id/toggleButton" android:layout_width="wrap_content" android:layout_height="wrap_content" > </ToggleButton> </LinearLayout>
事件处理的文件 MyView.java
先看效果图
package wyf.ytl;
import android.app.Activity;//引入相关的包
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.ToggleButton;
public class Sample_2_6 extends Activity implements OnClickListener{
Button button;//普通按钮
ImageButton imageButton;//图片按钮
ToggleButton toggleButton;//开关按钮
TextView textView;//文本控件
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {//回调方法
super.onCreate(savedInstanceState);
setContentView(R.layout.main);//设置显示的View
textView = (TextView) this.findViewById(R.id.textView);
button = (Button) this.findViewById(R.id.button);
button.setOnClickListener(this);//为button添加监听器
imageButton = (ImageButton) this.findViewById(R.id.imageButton);
imageButton.setOnClickListener(this);//为imageButton添加监听器
toggleButton = (ToggleButton) this.findViewById(R.id.toggleButton);
toggleButton.setOnClickListener(this);//为toggleButton添加监听器
}
public void onClick(View v) {//重写的事件处理回调方法
if(v == button){//点击的是普通按钮
textView.setText("您点击的是普通按钮");
}
else if(v == imageButton){//点击的是图片按钮
textView.setText("您点击的是图片按钮");
}
else if(v == toggleButton){//点击的是开关按钮
textView.setText("您点击的是开关按钮");
}
}
}