利用之前学过的多线程处理技术,我们做一个利用Android手机显示一个多彩霓虹灯效果的小实例。

布局文件,这里只留有加了id的线性布局文件

res/layout/mian.xml:

xmlns:tools="http://schemas.android.com/tools"

android:id="@+id/linearLayout1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

在res/values目录下,我们创建一个保存颜色资源的colors.xml文件,定义七个颜色资源(赤橙黄绿青蓝紫):

#ffff0000

#ffff6600

#ffffff00

#ff00ff00

#ff00ffff

#ff0000ff

#ff6600ff

首先获取线性布局管理器,然后获取屏幕的高度,再通过for循环创建14个文本框组件,并添加到线形布局管理器中。之后创建并开启一个新线程,在重写的run()方法中实现一个循环,在该循环中,首先获取一个Message对象,并为其设置一个消息标示,然后发送消息,最后让线程休息1秒钟。

在onCreat()方法中,创建一个Handler对象,在重写的HanlderMessage方法中,为每一个文本框设置颜色,该背景颜色从颜色数组中随机获取。这样就实现了多彩霓虹灯效果的小实例,具体代码如下:

MainActivity:

package com.example.test;

import java.util.Random;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.Window;

import android.widget.LinearLayout;

import android.widget.TextView;

public class MainActivity extends Activity{

private Handler handler;//Handler对象

private static LinearLayout linearLayout;//整体布局

public static TextView[] tv=new TextView[14];//TextView数组

int [] bgColor=new int[]{R.color.color1,R.color.color2,R.color.color3,

R.color.color4,R.color.color5,R.color.color6,R.color.color7};//使用颜色资源

private int index=0;//当前颜色值

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);//设置全屏显示

setContentView(R.layout.main);

//获取线性布局管理器

linearLayout=(LinearLayout)findViewById(R.id.linearLayout1);

//获取屏幕的高度

int height=this.getResources().getDisplayMetrics().heightPixels;

for (int i = 0; i < tv.length; i++) {

tv[i]=new TextView(this);//创建一个文本框对象

//设置文本框的宽度

tv[i].setWidth(this.getResources().getDisplayMetrics().widthPixels);

//设置文本框的高度

tv[i].setHeight(height/tv.length);

//将TextView组件添加到线性布局管理器中

linearLayout.addView(tv[i]);

}

Thread t=new Thread(new Runnable(){

@Override

public void run() {

while(!Thread.currentThread().isInterrupted()){

Message m=handler.obtainMessage();//获取一个Message

m.what=0x101;//设置消息标识

handler.sendMessage(m);//发送消息

try {

Thread.sleep(new Random().nextInt(1000));//休眠1秒钟

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();//输出异常信息

}

}

}

});

t.start();//开启线程

handler=new Handler(){

@Override

public void handleMessage(Message msg) {

int temp=0;

if(msg.what==0x101){

for (int i = 0; i < tv.length; i++) {

temp=new Random().nextInt(bgColor.length);//产生一个随机数

//去掉重复的并相邻的颜色

if(index==temp){

temp++;

if(temp==bgColor.length){

temp=0;

}

}

index=temp;

//为文本框设置背景

tv[i].setBackgroundColor(getResources().getColor(bgColor[index]));

}

}

super.handleMessage(msg);

}

};

}

}

运行效果如图

是不是很炫酷!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

android霓虹灯跑的动画,Android手机显示多彩霓虹灯效果相关推荐

  1. 路由器有一个android设备连接不上,路由器手机显示已保存连不上怎么办

    如今是网络的大时代,不管是生活还是工作中我们几乎都会接触到网络,不止是电脑,像一些别的智能设备也需要连接网络,例如手机.平板等,而网络最直接的连接方式就是使用路由器,那么你知道路由器手机显示已保存连不 ...

  2. android加载转圈动画,android 围绕中心旋转动画

    本文主要介绍Android中如何使用rotate实现图片不停旋转的效果.Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果 ...

  3. android 图片预览动画,Android实现仿Windows7图片预览窗格效果

    本实例将显示类似于windows7提供的图片预览窗格效果,单击任意一张图片,可以在右侧显示该图片的预览效果. 效果如图所示: 具体实现方法: res/layout/main.xml: android: ...

  4. android 图片预览动画,Android图片上传实现预览效果

    首先具体分析一下,实现的功能,其中需求分析是必不可少的,需求.逻辑清除之后,再上手写代码,思路会很清晰. 1.多图上传首先得选择图片(这里项目需求是既可以拍照上传也可以从相册中选择) 2.拍照上传很简 ...

  5. android仿微信红包动画,Android仿微信打开红包动画(逐帧动画)

    Frame Animation(逐帧动画): 逐帧动画(Frame-by-frame Animations)从字面上理解就是一帧挨着一帧的播放图片,就像放电影一样.和补间动画一样可以通过xml实现也可 ...

  6. android图片做平移动画,Android中用Matrix实现ImageView里的图片平移和缩放动画

    注: 这里说的图片的平移和缩放不是对ImageView整个view进行的,而是对ImageView里面的图片进行的(view本身没有什么变化),所以Android自带的动画效果不能满足需求. 功能点: ...

  7. android横竖屏切换动画,Android应用怎么实现屏幕横竖屏切换功能

    Android应用怎么实现屏幕横竖屏切换功能 发布时间:2020-11-26 15:48:57 来源:亿速云 阅读:121 作者:Leah Android应用怎么实现屏幕横竖屏切换功能?针对这个问题, ...

  8. android跳转界面动画,Android Activity跳转动画效果

    Activity的跳转动画在5.0的时候做了一个重大的突破,下面来看一下吧 1.5.0之前的overridePendingTransition 相信大家对OverridePendingTransiti ...

  9. android 向左滑动动画,Android中的滑动动画

    这是问题所在. 我想从左到右滑动(在下面的代码中从右到左--) 所以请帮我动画(XML动画与此相反)-- (当前任务在按钮单击时正确运行-) 这是源- public class MainActivit ...

最新文章

  1. Vue.js示例:GitHub提交(watch数据,created钩子,filters过滤); 网格组件(功能:1.检索,2排序);...
  2. flask静态html
  3. 【温故知新】CSS学习笔记(背景)
  4. 【MFC】带背景的工具栏
  5. Linux Shell高级技巧(一)
  6. java 空心菱形
  7. 使用ASP.NET Web API构建Restful API
  8. vs设置编码格式_轻松编辑PDF文档的贝茨编码
  9. 概率图模型(PGM) —— 贝叶斯网络(Bayesian Network)
  10. Javascript特效:左侧二维码的显示和隐藏
  11. 全网首发:JDK绘制文字:五、字体上下文产生流程
  12. 基于vue和springboot的物流仓储管理系统
  13. 禅道客户端安装教程(超详细)
  14. 【开箱】索尼A6000微单入手
  15. pci-e服务器显卡性能,PCI-E带宽揭密 显卡究竟能吃多大的带宽
  16. 如何在vue中使用Cesium加载shp文件、wms服务、WMTS服务
  17. 数字藏品 传承优秀传统文化的新载体
  18. 华三路由器RIP协议详细配置
  19. [Vuetify] Multiple instances of Vue detected
  20. (数字通信)星座图 平均功率 峰值功率 峰均比 练习题;16-QAM 星座图 格雷编码

热门文章

  1. 有些人走着走着就散了
  2. gdc服务器sr1000自动化创建,专业供应GDC SR-1000媒体服务器
  3. c# 下载视频文件
  4. 应用 | 小O地图在通勤路线规划的应用
  5. Android 客户端Socket 实现及简单封装。
  6. X3D: Expanding Architectures for Efficient Video Recognition 论文学习
  7. X86逆向4:VMP壳内寻找注册码
  8. 三个运维新技术趋势_技术与家族企业:三大趋势
  9. 如何让swiper的小圆点放在外面
  10. 2022电工(初级)考试模拟100题及答案