Framelayout即帧布局,使用这种布局可以把几个控件叠加在一起。使用Framelayout结合textview就可以实现一个简单的霓虹灯效果。
- packageorg.crazyit.framelayout;
- importjava.util.Timer;
- importjava.util.TimerTask;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.os.Handler;
- importandroid.os.Message;
- importandroid.widget.TextView;
- publicclassFrameLayoutTestextendsActivity
- {
- privateintcurrentColor=0;
- //定义一个颜色数组
- finalint[]colors=newint[]
- {
- R.color.color7,
- R.color.color6,
- R.color.color5,
- R.color.color4,
- R.color.color3,
- R.color.color2,
- R.color.color1,
- };
- //颜色显示数组,view为TextView控件
- finalint[]names=newint[]
- {
- R.id.View01,
- R.id.View02,
- R.id.View03,
- R.id.View04,
- R.id.View05,
- R.id.View06,
- R.id.View07
- };
- TextView[]views=newTextView[7];
- @Override
- publicvoidonCreate(BundlesavedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- for(inti=0;i<7;i++)
- {
- views[i]=(TextView)findViewById(names[i]);
- }
- //使用Handler进行消息处理
- finalHandlerhandler=newHandler()
- {
- @Override
- publicvoidhandleMessage(Messagemsg)
- {
- //表明消息来自本程序所发送
- if(msg.what==0x1122)
- {
- //依次改变7个TextView的背景色
- for(inti=0;i<7-currentColor;i++)
- {
- views[i].setBackgroundResource(colors[i+currentColor]);//改变背景色
- }
- for(inti=7-currentColor,j=0;i<7;i++,j++)
- {
- views[i].setBackgroundResource(colors[j]);
- }
- }
- super.handleMessage(msg);
- }
- };
- //定义一个线程周期性的改变currentColor变量值
- newTimer().schedule(newTimerTask()
- {
- @Override
- publicvoidrun()
- {
- currentColor++;
- if(currentColor>=6)
- {
- currentColor=0;
- }
- //发送一条消息通知系统改变7个TextView组件的背景色
- Messagem=newMessage();
- //给该消息定义一个标识
- m.what=0x1122;
- handler.sendMessage(m);
- }
- },0,100);//周期为100毫秒
- }
- }
对应的XML文件
- <?xmlversion="1.0"encoding="utf-8"?>
- <FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <!--依次定义7个TextView,先定义的TextView位于底层
- 后定义的TextView位于上层-->
- <TextViewandroid:id="@+id/View01"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:width="210px"
- android:height="50px"
- android:background="#ff0000"
- />
- <TextViewandroid:id="@+id/View02"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:width="180px"
- android:height="50px"
- android:background="#dd0000"
- />
- <TextViewandroid:id="@+id/View03"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:width="150px"
- android:height="50px"
- android:background="#bb0000"
- />
- <TextViewandroid:id="@+id/View04"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:width="120px"
- android:height="50px"
- android:background="#990000"
- />
- <TextViewandroid:id="@+id/View05"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:width="90px"
- android:height="50px"
- android:background="#770000"
- />
- <TextViewandroid:id="@+id/View06"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:width="60px"
- android:height="50px"
- android:background="#550000"
- />
- <TextViewandroid:id="@+id/View07"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:width="30px"
- android:height="50px"
- android:background="#330000"
- />
- </FrameLayout>
源码资料下载: