天天看點

android霓虹燈源代碼——基礎編

<a target="_blank" href="http://blog.51cto.com/attachment/201102/150528162.jpg"></a>

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 &gt;= 0; i--) 

        { 

            // 設定目前TextView的背景顔色 

            views[i] 

                    .setBackgroundColor(colors[nextColorPointers[nextColorPointer]]); 

            // 獲得下一個TextView的背景顔色值的索引(指針) 

            nextColorPointer = nextColorPointers[nextColorPointer]; 

        } 

        currentColorPointer++; 

        if (currentColorPointer == 5) 

            currentColorPointer = 0; 

        handler.postDelayed(this, 300); // 第300毫秒循環一次 

    } 

    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(); 

main.xml

&lt;?xml version="1.0" encoding="utf-8"?&gt; 

&lt;FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 

    android:layout_width="fill_parent" android:layout_height="fill_parent"&gt; 

    &lt;TextView android:id="@+id/textview1" android:layout_width="300dp" 

        android:layout_height="300dp" android:layout_gravity="center" /&gt; 

    &lt;TextView android:id="@+id/textview2" android:layout_width="240dp" 

        android:layout_height="240dp" android:layout_gravity="center" /&gt; 

    &lt;TextView android:id="@+id/textview3" android:layout_width="180dp" 

        android:layout_height="180dp" android:layout_gravity="center" /&gt; 

    &lt;TextView android:id="@+id/textview4" android:layout_width="120dp" 

        android:layout_height="120dp" android:layout_gravity="center" /&gt; 

    &lt;TextView android:id="@+id/textview5" android:layout_width="60dp" 

        android:layout_height="60dp" android:layout_gravity="center" /&gt; 

&lt;/FrameLayout&gt; 

本文轉自 llb988 51CTO部落格,原文連結:http://blog.51cto.com/llb988/497372,如需轉載請自行聯系原作者

繼續閱讀