当前位置:操作系统 > 安卓/Android >>

android学习笔记6:使用Framelayout实现霓虹灯效果

Framelayout即帧布局,使用这种布局可以把几个控件叠加在一起。使用Framelayout结合textview就可以实现一个简单的霓虹灯效果。


package org.crazyit.framelayout; 
 
import java.util.Timer; 
import java.util.TimerTask; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.widget.TextView; 
 
public class FrameLayoutTest extends Activity 

    private int currentColor = 0; 
    //定义一个颜色数组  
    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,  
    }; 
    //颜色显示数组,view为TextView控件  
    final int[] names = new int[] 
    { 
        R.id.View01, 
        R.id.View02, 
        R.id.View03, 
        R.id.View04, 
        R.id.View05, 
        R.id.View06, 
        R.id.View07 
    }; 
    TextView[] views = new TextView[7]; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main);   
        for (int i = 0 ; i < 7 ; i++) 
        { 
            views[i] = (TextView)findViewById(names[i]); 
        } 
        //使用Handler进行消息处理  
        final Handler handler = new Handler() 
        { 
            @Override 
            public void handleMessage(Message msg) 
            { 
                //表明消息来自本程序所发送  
                if(msg.what == 0x1122) 
                { 
                    //依次改变7个TextView的背景色  
                    for(int i = 0 ; i < 7 - currentColor ; i++)   
                    { 
                        views[i].setBackgroundResource(colors[i + currentColor]); //改变背景色  
                    } 
                    for(int i = 7 - currentColor , j = 0 ; i < 7 ; i++ ,j++) 
                    { 
                        views[i].setBackgroundResource(colors[j]); 
                    } 
                } 
                super.handleMessage(msg); 
            } 
        }; 
        //定义一个线程周期性的改变currentColor变量值  
        new Timer().schedule(new TimerTask() 
        { 
            @Override 
            public void run() 
            { 
                currentColor++; 
                if(currentColor >= 6) 
                { 
                    currentColor = 0; 
                } 
                //发送一条消息通知系统改变7个TextView组件的背景色  
                Message m = new Message(); 
                //给该消息定义一个标识  
                m.what = 0x1122; 
                handler.sendMessage(m);  
            }        
        }, 0 , 100); //周期为100毫秒  
    } 

package org.crazyit.framelayout;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;

public class FrameLayoutTest extends Activity
{
 private int currentColor = 0;
 //定义一个颜色数组
 final int[] colors = new int[]
 {

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,