android霓虹灯
霓:有时在虹的外侧还能看到第二道虹,光彩比第一道虹稍淡,色序是外紫内红,与虹相反。 虹:原意也是一种自然现象,就是彩虹,也是七彩的,色序从外至内分别为:赤、橙、黄、绿、蓝、靛、紫。 霓虹灯:夜间用来吸引顾客,或装饰夜景的彩色灯,所以用“霓虹”这两种美丽的东西来作为这种灯的名字。
让我们看一下源代码:
- package com.smart.activiy;
- 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个TextView
- private int currentColorPointer = 0; // 当前颜色索引(指针)
- private Handler handler;
- @Override
- public 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毫秒循环一次
- }
- @Override
- public 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毫秒循环一次
- }
- }
main.xml
- <?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>
本文转自 llb988 51CTO博客,原文链接:http://blog.51cto.com/llb988/497372,如需转载请自行联系原作者