android霓虹灯跑的动画,Android手机显示多彩霓虹灯效果
利用之前学过的多线程处理技术,我们做一个利用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手机显示多彩霓虹灯效果相关推荐
- 路由器有一个android设备连接不上,路由器手机显示已保存连不上怎么办
如今是网络的大时代,不管是生活还是工作中我们几乎都会接触到网络,不止是电脑,像一些别的智能设备也需要连接网络,例如手机.平板等,而网络最直接的连接方式就是使用路由器,那么你知道路由器手机显示已保存连不 ...
- android加载转圈动画,android 围绕中心旋转动画
本文主要介绍Android中如何使用rotate实现图片不停旋转的效果.Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果 ...
- android 图片预览动画,Android实现仿Windows7图片预览窗格效果
本实例将显示类似于windows7提供的图片预览窗格效果,单击任意一张图片,可以在右侧显示该图片的预览效果. 效果如图所示: 具体实现方法: res/layout/main.xml: android: ...
- android 图片预览动画,Android图片上传实现预览效果
首先具体分析一下,实现的功能,其中需求分析是必不可少的,需求.逻辑清除之后,再上手写代码,思路会很清晰. 1.多图上传首先得选择图片(这里项目需求是既可以拍照上传也可以从相册中选择) 2.拍照上传很简 ...
- android仿微信红包动画,Android仿微信打开红包动画(逐帧动画)
Frame Animation(逐帧动画): 逐帧动画(Frame-by-frame Animations)从字面上理解就是一帧挨着一帧的播放图片,就像放电影一样.和补间动画一样可以通过xml实现也可 ...
- android图片做平移动画,Android中用Matrix实现ImageView里的图片平移和缩放动画
注: 这里说的图片的平移和缩放不是对ImageView整个view进行的,而是对ImageView里面的图片进行的(view本身没有什么变化),所以Android自带的动画效果不能满足需求. 功能点: ...
- android横竖屏切换动画,Android应用怎么实现屏幕横竖屏切换功能
Android应用怎么实现屏幕横竖屏切换功能 发布时间:2020-11-26 15:48:57 来源:亿速云 阅读:121 作者:Leah Android应用怎么实现屏幕横竖屏切换功能?针对这个问题, ...
- android跳转界面动画,Android Activity跳转动画效果
Activity的跳转动画在5.0的时候做了一个重大的突破,下面来看一下吧 1.5.0之前的overridePendingTransition 相信大家对OverridePendingTransiti ...
- android 向左滑动动画,Android中的滑动动画
这是问题所在. 我想从左到右滑动(在下面的代码中从右到左--) 所以请帮我动画(XML动画与此相反)-- (当前任务在按钮单击时正确运行-) 这是源- public class MainActivit ...
最新文章
- Vue.js示例:GitHub提交(watch数据,created钩子,filters过滤); 网格组件(功能:1.检索,2排序);...
- flask静态html
- 【温故知新】CSS学习笔记(背景)
- 【MFC】带背景的工具栏
- Linux Shell高级技巧(一)
- java 空心菱形
- 使用ASP.NET Web API构建Restful API
- vs设置编码格式_轻松编辑PDF文档的贝茨编码
- 概率图模型(PGM) —— 贝叶斯网络(Bayesian Network)
- Javascript特效:左侧二维码的显示和隐藏
- 全网首发:JDK绘制文字:五、字体上下文产生流程
- 基于vue和springboot的物流仓储管理系统
- 禅道客户端安装教程(超详细)
- 【开箱】索尼A6000微单入手
- pci-e服务器显卡性能,PCI-E带宽揭密 显卡究竟能吃多大的带宽
- 如何在vue中使用Cesium加载shp文件、wms服务、WMTS服务
- 数字藏品 传承优秀传统文化的新载体
- 华三路由器RIP协议详细配置
- [Vuetify] Multiple instances of Vue detected
- (数字通信)星座图 平均功率 峰值功率 峰均比 练习题;16-QAM 星座图 格雷编码