线型布局管理器LinearLayout
<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/myshowa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="牛儿吃草"
/>
<TextView
android:id="@+id/myshoub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="博客:http://blog.youkuaiyun.com/e421083458"
/>
<TextView
android:id="@+id/myshowc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="www.baidu.com"
/>
</LinearLayout>
框架布局管理器FrameLayout
FrameLayout布局(帧布局)就是在屏幕上开辟一个区域以填充所有的组件,但是使用FrameLayout布局会将所有的组件都放在屏幕的左上角,而且所有的组件可以层叠进行显示。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/FrameLayout01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/myimg"
android:src="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<EditText
android:id="@+id/myinput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请输入您的。。." />
<Button
android:id="@+id/mybut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按我" />
</FrameLayout>
package com.richard.framelayout;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FrameLayout layout = new FrameLayout(this);
FrameLayout.LayoutParams layoutParam = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, //布局宽度为屏幕宽度
ViewGroup.LayoutParams.FILL_PARENT
);
FrameLayout.LayoutParams viewParam = new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, //组建宽度为内容宽度
ViewGroup.LayoutParams.WRAP_CONTENT //组建高度为内容高度
);
ImageView img = new ImageView(this);
img.setImageResource(R.drawable.ic_launcher);
EditText edit = new EditText(this);
edit.setText("请输入你的大名");
Button but = new Button(this);
but.setText("按我");
layout.addView(img,viewParam);
layout.addView(edit,viewParam);
layout.addView(but,viewParam);
super.setContentView(layout,layoutParam);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
表格布局管理器TableLayout
TableLayout是采用表格的形式对控件的布局进行管理的,在TableLayout布局管理器之中,要使用TableRow进行表格行的控制,之后所有的组件要在TableRow中增加。
范例一:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableRow >
<EditText
android:id="@+id/myinput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请输入检索关键字..."
/>
<Button
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="检索"
/>
</TableRow>
<View
android:layout_height="2px"
android:background="#ff0909"/>
<TableRow >
<TextView
android:id="@+id/info1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20px"
android:text="请选择文字编码"
/>
<RadioGroup
android:id="@+id/encoding"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:checkedButton="@+id/gbk"
>
<RadioButton
android:id="@+id/utf"
android:text='utf8编码'
/>
<RadioButton
android:id="@+id/gbk"
android:text="gbk编码"
/>
</RadioGroup>
</TableRow>
</TableLayout>
范例二:
加背景和表格形式排列。
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/logo"
android:shrinkColumns="3"
android:collapseColumns="0,2"
>
<TableRow >
<TextView
android:layout_column="0"
android:text='ID'
android:gravity="center_horizontal"
android:padding="8px"/>
<TextView
android:layout_column="1"
android:text="姓名"
android:gravity="center_horizontal"
android:padding="8px"/>
<TextView
android:layout_column="2"
android:text="Email"
android:gravity="center_horizontal"
android:padding="8px"/>
<TextView
android:layout_column="3"
android:text="地址"
android:gravity="left"
android:padding="8px"/>
</TableRow>
<View
android:layout_height="2px"
android:background="#ff9090"
/>
<TableRow >
<TextView
android:layout_column="0"
android:text='MLDN'
android:gravity="center_horizontal"
android:padding="3px"/>
<TextView
android:layout_column="1"
android:text="魔乐科技"
android:gravity="center_horizontal"
android:padding="3px"/>
<TextView
android:layout_column="2"
android:text="mldnkf@163.com"
android:gravity="center_horizontal"
android:padding="3px"/>
<TextView
android:layout_column="3"
android:text="北京西城区甲11号德外大街德胜科技园美江大厦 A座 - 6层 —— MLDN魔乐科技"
android:gravity="left"
android:padding="3px"/>
</TableRow>
<TableRow >
<TextView
android:layout_column="0"
android:text='richard'
android:gravity="center_horizontal"
android:padding="3px"/>
<TextView
android:layout_column="1"
android:text="牛儿吃草"
android:gravity="center_horizontal"
android:padding="3px"/>
<TextView
android:layout_column="2"
android:text="e421083458@163.com"
android:gravity="center_horizontal"
android:padding="3px"/>
<TextView
android:layout_column="3"
android:text="山东泰山"
android:gravity="left"
android:padding="3px"/>
</TableRow>
</TableLayout>
范例三:
动态生成表格
package com.example.tablelayout;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.ViewGroup;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class MainActivity extends Activity {
private String titleData[][] = new String[][]{
{"ID","姓名","EMALL","地址"},
{"ID","姓名","EMALL","地址"},
{"ID","姓名","EMALL","地址"},
{"ID","姓名","EMALL","地址"}}; //显示数据
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TableLayout layout = new TableLayout(this);
TableLayout.LayoutParams layoutParam = new TableLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, //布局管理器宽度为屏幕宽度
ViewGroup.LayoutParams.FILL_PARENT); //布局管理器高度为屏幕高度
layout.setBackgroundResource(R.drawable.logo); //设置北京图片
for(int x=0;x<this.titleData.length;x++){
TableRow row = new TableRow(this);
for(int y=0;y<this.titleData[x].length;y++){
TextView text = new TextView(this);
text.setText(this.titleData[x][y]);
row.addView(text,y); //增加组建
}
layout.addView(row);
}
super.setContentView(layout, layoutParam); //定义组
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
相对布局管理器RelativeLayout
相对布局管理器指的是参考某一其他控件进行摆放,可以通过控制,将组件摆放在一个指定参考组件的上、下、左、右等位置,这些可以直接通过各个组件提供的属性完成。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RealtiveLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView
android:id="@+id/imga"
android:src="@drawable/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/imgb"
android:src="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/imga"
/>
<TextView
android:text="牛儿吃草的博客"
android:id="@+id/mytext"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_toRightOf="@+id/imga"
android:layout_below="@+id/imgb"
/>
<Button
android:text="http://blog.youkuaiyun.com/e421083458"
android:id="@+id/mybut"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_below="@+id/mytext"
/>
</RelativeLayout>
package com.richard.relativelayout;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.RelativeLayout;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout layout = (RelativeLayout) super.findViewById(R.id.RealtiveLayout1);
RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT
);
param.addRule(RelativeLayout.BELOW,R.id.mybut);
param.addRule(RelativeLayout.RIGHT_OF,R.id.imga);
EditText text = new EditText(this);
layout.addView(text,param);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
绝对定位布局管理器AbsoluteLayout
<AbsoluteLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/absolutelayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:text="牛儿吃草的博客"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="80px"
android:layout_y="10px"
/>
<TextView
android:text="blog.youkuaiyun.com/e421083458"
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="90px"
android:layout_y="30px"
/>
<ImageView
android:id="@+id/img"
android:src="@drawable/img_111"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="20px"
android:layout_y="100px"
/>
</AbsoluteLayout>
布局管理器的嵌套
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/mybut1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="牛儿吃草的博客"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:src="@drawable/iokkf2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<ImageView
android:src="@drawable/iok_wx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TableRow >
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请输入检索关键词"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="检索"
/>
</TableRow>
</TableLayout>
</LinearLayout>