<?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"><TextView android:id="@+id/textview1" android:layout_width="300dp"android:layout_height="300dp" android:layout_gravity="center" /><TextView android:id="@+id/textview2" android:layout_width="240dp"android:layout_height="240dp" android:layout_gravity="center" /><TextView android:id="@+id/textview3" android:layout_width="180dp"android:layout_height="180dp" android:layout_gravity="center" /><TextView android:id="@+id/textview4" android:layout_width="120dp"android:layout_height="120dp" android:layout_gravity="center" /><TextView android:id="@+id/textview5" android:layout_width="60dp"android:layout_height="60dp" android:layout_gravity="center" /></FrameLayout>
package cn.eoe.neonlight;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.view.View;public class Main extends Activity implements Runnable {// 5个TextView的颜色值private int[] colors = new int[] { 0xFFFF0000, 0xFF00FF00, 0xFF0000FF,0xFFFF00FF, 0xFF00FFFF };// 每一次颜色的下一个颜色的索引,最后一个颜色的下一个颜色是第一个颜色,相当于循环链表private int[] nextColorPointers = new int[] { 1, 2, 3, 4, 0 };private View[] views; // 保存5个TextViewprivate int currentColorPointer = 0; // 当前颜色索引(指针)private Handler handler;@Overridepublic void run() {int nextColorPointer = currentColorPointer;for (int i = views.length - 1; i >= 0; i--) {// 设置当前TextView的背景颜色views[i].setBackgroundColor(colors[nextColorPointers[nextColorPointer]]);// 获得下一个TextView的背景颜色值的索引(指针)nextColorPointer = nextColorPointers[nextColorPointer];}currentColorPointer++;if (currentColorPointer == 5)currentColorPointer = 0;handler.postDelayed(this, 300); // 每300毫秒循环一次}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);// 初始化views数组views = new View[] { findViewById(R.id.textview5),findViewById(R.id.textview4), findViewById(R.id.textview3),findViewById(R.id.textview2), findViewById(R.id.textview1) };handler = new Handler();handler.postDelayed(this, 300); // 每300毫秒循环一次}}
原文:http://www.cnblogs.com/zhuzhenfeng/p/4637761.html