安卓第三天————布局的实例代码
2011-12-07 21:48
183 查看
1.线性布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/name_test" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ok_test" />
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel_test" />
/>
</LinearLayout>
运行结果如下:
2.表格布局
<?xml version="1.0"encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="0,1,2,3"
>
<TableRow >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gender" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/age" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phone" />
</TableRow>
<TableRow >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nameZs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/genderZs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ageZs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phoneZs" />
</TableRow>
<TableRow >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nameLs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/genderLs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ageLs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phoneLs" />
</TableRow>
</TableLayout>
3.相对布局
<?xml version="1.0"encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/system"
android:id="@+id/t1_id"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username"
android:layout_below="@id/t1_id"
android:id="@+id/name_id"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="30px"
android:layout_toRightOf="@id/name_id"
android:layout_below="@id/t1_id"
android:id="@+id/e1_id"
></EditText>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/userpass"
android:id="@+id/pass_id"
android:layout_below="@id/name_id"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="30px"
android:layout_below="@id/e1_id"
android:layout_toRightOf="@+id/pass_id"
android:id="@+id/e2_id"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"
android:layout_below="@id/e2_id"
android:layout_alignParentRight="true"
android:id="@+id/cancel_id"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login"
android:layout_below="@id/e2_id"
android:layout_toLeftOf="@id/cancel_id"
/>
</RelativeLayout>
运行结果如下:
4.嵌套布局.
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/system"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username"
android:id="@+id/name_id"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/name_id"
android:id="@+id/e1_id"
>
</EditText>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/userpass"
android:id="@+id/pass_id"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/pass_id"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"
android:layout_alignParentRight="true"
android:id="@+id/cancel_id"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login"
android:layout_toLeftOf="@id/cancel_id"
/>
</RelativeLayout>
</LinearLayout>
代码结果如下:
5、(1)首先是main.xml文件的代码
view plaincopy to clipboardprint?
<?xml
version="1.0"
encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/view0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#ff0000"
android:height="200dp"
android:width="200dp"
/>
<TextView
android:id="@+id/view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#ff00ff"
android:height="180dp"
android:width="180dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="160dp"
android:height="160dp"
android:background="#bb0000"
android:id="@+id/view2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="140dp"
android:height="140dp"
android:layout_gravity="center"
android:background="#990000"
android:id="@+id/view3"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="120dp"
android:height="120dp"
android:layout_gravity="center"
android:background="#770000"
android:id="@+id/view4"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="100dp"
android:height="100dp"
android:layout_gravity="center"
android:background="#550000"
android:id="@+id/view5"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="80dp"
android:height="80dp"
android:layout_gravity="center"
android:background="#330000"
android:id="@+id/view6"/>
</FrameLayout>
(3)、源代码LayoutChen.java
view plaincopy to clipboardprint?
package cn.csdn.activity;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class LayoutChenActivity
extends Activity {
final int[] colors=new
int[]{
R.color.color7,
R.color.color6,
R.color.color5,
R.color.color4,
R.color.color3,
R.color.color2,
R.color.color1,
};
final int[] names=new
int[]{
R.id.view0,
R.id.view1,
R.id.view2,
R.id.view3,
R.id.view4,
R.id.view5,
R.id.view6,
};
TextView view[]=new TextView[7];
class MyHandler extends Handler{
int i=0;
public void handleMessage(Message msg){
i++;
if(i>=6){
i=1;
}
for(int m=7-i,n=0;m<7;m++,n++){
view[m].setBackgroundResource(colors
);
}
for(int m=0;m<7-i;m++){
view[m].setBackgroundResource(colors[m+i]);
}
sleep(100);
}
public void sleep(int j){
sendMessageDelayed(obtainMessage(0),j);
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
for(int i=0;i<7;i++){
view[i]=(TextView) findViewById(names[i]);
}
final MyHandler myHandler=new MyHandler();
myHandler.sleep(100);
}
package cn.csdn.activity;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class LayoutChenActivity extends Activity {
final int[] colors=new int[]{
R.color.color7,
R.color.color6,
R.color.color5,
R.color.color4,
R.color.color3,
R.color.color2,
R.color.color1,
};
final int[] names=new int[]{
R.id.view0,
R.id.view1,
R.id.view2,
R.id.view3,
R.id.view4,
R.id.view5,
R.id.view6,
};
TextView view[]=new TextView[7];
class MyHandler extends Handler{
int i=0;
public void handleMessage(Message msg){
i++;
if(i>=6){
i=1;
}
for(int m=7-i,n=0;m<7;m++,n++){
view[m].setBackgroundResource(colors
);
}
for(int m=0;m<7-i;m++){
view[m].setBackgroundResource(colors[m+i]);
}
sleep(100);
}
public void sleep(int j){
sendMessageDelayed(obtainMessage(0),j);
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
for(int i=0;i<7;i++){
view[i]=(TextView) findViewById(names[i]);
}
final MyHandler myHandler=new MyHandler();
myHandler.sleep(100);
}
使用了Android 提供的消息通讯类 Handler 。该类可以实现非主线程和负责 UI 的主线程之间的通信 ,进而间接实现非主线程更新 UI 界面。由于 sleep 方法中的
sendMessageDelayed(obtainMessage(0), delayMillis); 本身会延迟发送一个消息 , 该消息会被框架传递给 handleMessage 事件 。 我们在 handleMessage() 方法中再次调用 sleep() 方法 ,形成一个循环调用 。 在我们对界面进行点击之前 , 两个方法会一直循环调用 。 前景图片也会不断的切换,进而实现霓虹灯的效果。
效果如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/name_test" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ok_test" />
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel_test" />
/>
</LinearLayout>
运行结果如下:
2.表格布局
<?xml version="1.0"encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="0,1,2,3"
>
<TableRow >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/name" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gender" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/age" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phone" />
</TableRow>
<TableRow >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nameZs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/genderZs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ageZs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phoneZs" />
</TableRow>
<TableRow >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nameLs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/genderLs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/ageLs" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/phoneLs" />
</TableRow>
</TableLayout>
3.相对布局
<?xml version="1.0"encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/system"
android:id="@+id/t1_id"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username"
android:layout_below="@id/t1_id"
android:id="@+id/name_id"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="30px"
android:layout_toRightOf="@id/name_id"
android:layout_below="@id/t1_id"
android:id="@+id/e1_id"
></EditText>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/userpass"
android:id="@+id/pass_id"
android:layout_below="@id/name_id"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="30px"
android:layout_below="@id/e1_id"
android:layout_toRightOf="@+id/pass_id"
android:id="@+id/e2_id"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"
android:layout_below="@id/e2_id"
android:layout_alignParentRight="true"
android:id="@+id/cancel_id"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login"
android:layout_below="@id/e2_id"
android:layout_toLeftOf="@id/cancel_id"
/>
</RelativeLayout>
运行结果如下:
4.嵌套布局.
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/system"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username"
android:id="@+id/name_id"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/name_id"
android:id="@+id/e1_id"
>
</EditText>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/userpass"
android:id="@+id/pass_id"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/pass_id"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cancel"
android:layout_alignParentRight="true"
android:id="@+id/cancel_id"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/login"
android:layout_toLeftOf="@id/cancel_id"
/>
</RelativeLayout>
</LinearLayout>
代码结果如下:
5、(1)首先是main.xml文件的代码
view plaincopy to clipboardprint?
<?xml
version="1.0"
encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/view0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#ff0000"
android:height="200dp"
android:width="200dp"
/>
<TextView
android:id="@+id/view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#ff00ff"
android:height="180dp"
android:width="180dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="160dp"
android:height="160dp"
android:background="#bb0000"
android:id="@+id/view2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="140dp"
android:height="140dp"
android:layout_gravity="center"
android:background="#990000"
android:id="@+id/view3"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="120dp"
android:height="120dp"
android:layout_gravity="center"
android:background="#770000"
android:id="@+id/view4"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="100dp"
android:height="100dp"
android:layout_gravity="center"
android:background="#550000"
android:id="@+id/view5"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:width="80dp"
android:height="80dp"
android:layout_gravity="center"
android:background="#330000"
android:id="@+id/view6"/>
</FrameLayout>
view plaincopy to clipboardprint? <?xml version="1.0" encoding="utf-8"?> <resources> <color name="color1">#330000</color> <color name="color2">#550000</color> <color name="color3">#770000</color> <color name="color4">#990000</color> <color name="color5">#bb0000</color> <color name="color6">#dd0000</color> <color name="color7">#ff0000</color> </resources> <?xml version="1.0" encoding="utf-8"?> <resources> <color name="color1">#330000</color> <color name="color2">#550000</color> <color name="color3">#770000</color> <color name="color4">#990000</color> <color name="color5">#bb0000</color> <color name="color6">#dd0000</color> <color name="color7">#ff0000</color> </resources>
(3)、源代码LayoutChen.java
view plaincopy to clipboardprint?
package cn.csdn.activity;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class LayoutChenActivity
extends Activity {
final int[] colors=new
int[]{
R.color.color7,
R.color.color6,
R.color.color5,
R.color.color4,
R.color.color3,
R.color.color2,
R.color.color1,
};
final int[] names=new
int[]{
R.id.view0,
R.id.view1,
R.id.view2,
R.id.view3,
R.id.view4,
R.id.view5,
R.id.view6,
};
TextView view[]=new TextView[7];
class MyHandler extends Handler{
int i=0;
public void handleMessage(Message msg){
i++;
if(i>=6){
i=1;
}
for(int m=7-i,n=0;m<7;m++,n++){
view[m].setBackgroundResource(colors
);
}
for(int m=0;m<7-i;m++){
view[m].setBackgroundResource(colors[m+i]);
}
sleep(100);
}
public void sleep(int j){
sendMessageDelayed(obtainMessage(0),j);
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
for(int i=0;i<7;i++){
view[i]=(TextView) findViewById(names[i]);
}
final MyHandler myHandler=new MyHandler();
myHandler.sleep(100);
}
package cn.csdn.activity;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class LayoutChenActivity extends Activity {
final int[] colors=new int[]{
R.color.color7,
R.color.color6,
R.color.color5,
R.color.color4,
R.color.color3,
R.color.color2,
R.color.color1,
};
final int[] names=new int[]{
R.id.view0,
R.id.view1,
R.id.view2,
R.id.view3,
R.id.view4,
R.id.view5,
R.id.view6,
};
TextView view[]=new TextView[7];
class MyHandler extends Handler{
int i=0;
public void handleMessage(Message msg){
i++;
if(i>=6){
i=1;
}
for(int m=7-i,n=0;m<7;m++,n++){
view[m].setBackgroundResource(colors
);
}
for(int m=0;m<7-i;m++){
view[m].setBackgroundResource(colors[m+i]);
}
sleep(100);
}
public void sleep(int j){
sendMessageDelayed(obtainMessage(0),j);
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
for(int i=0;i<7;i++){
view[i]=(TextView) findViewById(names[i]);
}
final MyHandler myHandler=new MyHandler();
myHandler.sleep(100);
}
使用了Android 提供的消息通讯类 Handler 。该类可以实现非主线程和负责 UI 的主线程之间的通信 ,进而间接实现非主线程更新 UI 界面。由于 sleep 方法中的
sendMessageDelayed(obtainMessage(0), delayMillis); 本身会延迟发送一个消息 , 该消息会被框架传递给 handleMessage 事件 。 我们在 handleMessage() 方法中再次调用 sleep() 方法 ,形成一个循环调用 。 在我们对界面进行点击之前 , 两个方法会一直循环调用 。 前景图片也会不断的切换,进而实现霓虹灯的效果。
效果如下:
相关文章推荐
- DIV+CSS网页另类上下布局的实例代码
- iOS: 学习笔记, 用代码驱动自动布局实例
- repeater 分列显示以及布局的实例代码
- 14天学会安卓开发(第三天)UI事件处理与布局管理
- 第三天 DIV+CSS布局实例
- Ext 表单布局实例代码
- Android 百分比布局详解及实例代码
- 第七篇Bootstrap表单布局实例代码详解(三种表单布局)
- [Android实例] Android Studio插件-自动根据布局生成Activity等代码1.4 (开源)(申明:来源于网络)
- 安卓仿计算器布局代码
- CSS+DIV实现两列布局实例代码
- 14天学会安卓开发(第三天)UI事件处理与布局管理
- Android环形进度条(安卓默认形式)实例代码
- 安卓开发-Sqlite创建数据库实例(核心代码讲解)
- Android编程之代码创建布局实例分析
- 安卓获取联系人代码实例详解
- Android Listview中显示不同的视图布局详解及实例代码
- Android UI开发布局实例及有关代码
- 安卓开发之mqtt协议实例代码
- DIV+CSS 三栏布局实例代码