android 霓虹灯效果

package com.example.test;

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

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

public class MainActivity 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,
    };
    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
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        for (int i = 0 ; i < 7 ; i++)
        {
            views[i] = (TextView)findViewById(names[i]);
        }
        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);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

android 霓虹灯效果

时间: 2024-09-30 02:17:42

android 霓虹灯效果的相关文章

FrameLayout和handle实现霓虹灯效果

这个程序的主要思想就是在一个FrameLayout中定义多个TextView,分别设置不同的背景色.因为帧布局的特性,所以这些控件都是叠加起来的.然后,通过定时器循环给handler发送消息,改变控件的背景色.最后就能实现霓虹灯的效果了,本实例不怎么实用,仅仅能做一般练习而已. 布局文件 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://

帧布局实现霓虹灯效果

Framelayout即帧布局,使用这种布局可以把几个控件叠加在一起.使用Framelayout结合textview就可以实现一个简单的霓虹灯效果. 一.首先在XML中使用了FrameLayout布局并添加六个TestView文件,并设定了颜色和位置. XML布局如下: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.and

Android动画效果——1.帧动画2.补间动画3.跳转画面(三)

Android--动画效果1.帧动画2.补间动画3.跳转画面 插值器类 xml属性值 说明 LinearInterpolator @android:anim/linear_interpolatorr 动画以均匀的速度改变. AccelerateInterpolator @android:anim/accelerate_interpolator 在动画开始时改变速度较慢,然后开始加速. AccelerateDecelerateInterpolator @android:anim/accelerat

Android Toast效果

Android Toast效果是一种提醒方式,在程序中使用一些短小的信息通知用户,过一会儿会自动消失,实现如下: FirstActivity.java package org.elvalad.activitytest; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.Window; import android.widget.Button; i

十六、Android 滑动效果汇总

Android 滑动效果入门篇(一)-- ViewFlipper Android 滑动效果入门篇(二)-- Gallery Android 滑动效果基础篇(三)-- Gallery仿图像集浏览 Android 滑动效果基础篇(四)-- Gallery + GridView Android 滑动效果进阶篇(五)-- 3D旋转 Android 滑动效果进阶篇(六)-- 倒影效果 ViewFilpper 是Android官方提供的一个View容器类,继承于ViewAnimator类,用于实现页面切换,

android表格效果--ListView隔行变色

import meetweb.net.util.SpecialAdapter; ..... private SpecialAdapter simpleAdapter = null; public void ShowData(){  RateList = rateService.findAll(); System.out.println(RateList); LVrate=(ListView) this.findViewById(R.id.lvrate); simpleAdapter = new 

Android动画效果之Frame Animation(逐帧动画)(二)(

前言: 上一篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画),今天来总结下Android的另外一种动画Frame Animation(逐帧动画). Frame Animation(逐帧动画): 逐帧动画(Frame-by-frame Animations)从字面上理解就是一帧挨着一帧的播放图片,就像放电影一样.和补间动画一样可以通过xml实现也可以通过java代码实现.接下来借助目前项目中的一个开奖的动画来总结

200多种Android动画效果的强悍框架

admin 发布于2015-10-23 14:33 363/68015 [精品推荐]200多种Android动画效果的强悍框架,太全了,不看这个,再有动画的问题,不理你了^@^ 功能模块和技术方案 只看楼主 楼层直达 200多种Android动画效果的强悍框架,太全了 概要: Android近200多种动画效果集合框架源码,太全了,总有你需要的,木有你找不到的,相当强悍,非常棒的产品开发原型参考和学习资料 主要功能列表: 1)Splash动画 (中心打开式效果 ) 2)Flip折叠效果的集合(1

Android动画效果之初识Property Animation(属性动画)(三)

前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Android动画效果之Frame Animation(逐帧动画)(二),其实总结前两个的根本目的就是为了学习今天的主角Property Animation(属性动画).其实在Android最早期只提供了前两种动画方式,在Android 3.0才引入了属性动画,谷歌为何要引入属性动画呢?今天我们来总结学习一