最终目的:

使用帧布局实现霓虹灯效果,要求用到线程,能显示变换不同的颜色的霓虹灯动画效果。

效果图

布局文件

主布局文件运用了FrameLayout布局和七个不同大小的TextView,内容居中显示,即layout_gravity=“center”

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.fang.zzti.layout.FrameLayout"><TextViewandroid:id="@+id/view1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:width="280dp"android:height="280dp"android:background="#669933"/><TextViewandroid:id="@+id/view2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:width="240dp"android:height="240dp"android:background="#669966"/><TextViewandroid:id="@+id/view3"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:width="200dp"android:height="200dp"android:background="#669999"/><TextViewandroid:id="@+id/view4"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:width="160dp"android:height="160dp"android:background="#6699CC"/><TextViewandroid:id="@+id/view5"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:width="120dp"android:height="120dp"android:background="#6699FF"/><TextViewandroid:id="@+id/view6"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:width="80dp"android:height="80dp"android:background="#66CCFF"/><TextViewandroid:id="@+id/view7"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:width="40dp"android:height="40dp"android:background="#66CC00"/>
</FrameLayout>

创建color变量(values目录下)

<resources><color name="color1">#660000</color><color name="color2">#660033</color><color name="color3">#660066</color><color name="color4">#660099</color><color name="color5">#6600CC</color><color name="color6">#6600FF</color><color name="color7">#3300CC</color>
</resources>

Activity中java代码

public class FrameLayout extends AppCompatActivity {private int currentColor=0;private int update=1;final int []colors=new int[]{R.color.color1,R.color.color2,R.color.color3,R.color.color4,R.color.color5,R.color.color6,R.color.color7};final int []names=new int[]{R.id.view1,R.id.view2,R.id.view3,R.id.view4,R.id.view5,R.id.view6,R.id.view7};TextView views[]=new TextView[7];
//    消息通讯类,实现非主线程更新UI组件Handler handler=new Handler(){@Overridepublic void handleMessage(Message msg) {if(msg.what==update){for(int i=0;i<names.length;i++){views[i].setBackgroundResource(colors[(i+currentColor)%names.length]);}currentColor++;}super.handleMessage(msg);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_frame_layout);for(int i=0;i<names.length;i++){views[i]=(TextView)findViewById(names[i]);}new Timer().schedule(new TimerTask() {@Overridepublic void run() {//发送一条消息通知系统更新TextView的背景色handler.sendEmptyMessage(update);}},0,200);}
}

用到的知识点

1、Handle

主要接受子线程发送的数据,并用次数据配合主线程更新UI。当应用程序启动时,Android首先会开启一个主线程(也就是UI线程),主线程管理界面中UI控件,进行事件的分发。Android更新UI只能在子线程中更新,子线程中更新是危险的。Handle运行在主线程(UI线程)中,它与子线程可以通过Message对象来传递数据,Handle接受子线程传来的Message对象,把这些消息放入主线程队列中,更新UI。

2、定时器Timer

Timer是一种定时器工具,用来在一个后台线程计划执行任务,TimerTask是一个抽象类,它的子类代表一个可以被Timer计划的任务。TimeTask实现了Runnable接口,并实现了run()方法,类似线程中的run()方法,本例中的timer.schedule(Timertask,delay,period),第一个参数Timertask封装了具体的任务,第二个参数表示要等待一段时间delay才会执行run()方法,,第三个参数period表示间隔多长时间重复执行run()方法。

参考:帧布局实现霓虹灯效果

Android:使用帧布局实现霓虹灯效果相关推荐

  1. android的帧布局,七、Android帧布局FrameLayout和霓虹灯效果

    帧布局容器为每个加入其中的组件创建一个空白的区域(称为一帧),所有每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐. FrameLayout的常用XML属性和相关方法 XML属性 相关 ...

  2. android中帧布局效果,Android开发实现布局帧布局霓虹灯效果示例

    本文实例讲述了android开发实现布局帧布局霓虹灯效果.分享给大家供大家参考,具体如下: 效果图: 实现方式: framelayout中,设置8个textview,在主函数中,设计颜色数组,通过有序 ...

  3. 【Android】使用FrameLayout布局实现霓虹灯效果

    FrameLayout是五大布局中最简单的一个布局. 在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置. 它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的 ...

  4. android中帧布局效果,布局之FrameLayout(帧布局)详解

    New UI-布局之FrameLayout(帧布局)详解 --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途!本节引言:FrameLayout(帧布局)可以说是六大布局中最为简单的一 ...

  5. android脚步---使用framelayout实现霓虹灯效果

    轮换帧布局中7个TextView的背景颜色,会出现上面颜色渐变不断变换. 首先在main.xml文件中进行布局 总体布局为framelayout 中间有7个Textview,代表7种不同的颜色,可以看 ...

  6. Android studio用帧布局实现霓虹灯界面

    效果图: 代码: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:andr ...

  7. android 喇叭帧动画,CSS动画效果——语音播放小喇叭

    写业务代码经常会碰到要自己实现一些设计交给的小动画,今天我们就来看下小喇叭那种类似倒过来的wifi图标一样的效果: 语音播放效果 对于这个有几种实现方案:一种是直接把图标.png文件放在下面,然后再在 ...

  8. android霓虹灯跑的动画,Android手机显示多彩霓虹灯效果

    利用之前学过的多线程处理技术,我们做一个利用Android手机显示一个多彩霓虹灯效果的小实例. 布局文件,这里只留有加了id的线性布局文件 res/layout/mian.xml: xmlns:too ...

  9. Android开发-五大布局

    在html中大家都知道布局是什么意思了,简单来说就是将页面划分模块,比如html中的div.table等.那么Android中也是这样的.Android五大布局让界面更加美化,开发起来也更加方便.当然 ...

最新文章

  1. python数据库pymysql_Python——数据库04 Python操作MySQL pymysql模块使用,python,04python,MySQLpymysql...
  2. linux2.6 gcc 4.8.2,在Red Hat Enterprise linux 6.5上安装GCC 4.8.2
  3. 用CSS画一些多边形状
  4. python识别pdf文字_Python 神工具包!翻译、文字识别、语音转文字统统搞定
  5. html5json转换为数组,将JSON数组转换为jQuery中的HTML表
  6. 基于layui的省市区三级联动(数据交互)
  7. 微服务化的基石--持续集成
  8. WPS Office 2016 专业版终身授权正版
  9. c++ - 虚函数表
  10. 【PCIe 实战】SNPS PCIe 开启 SRIS mode
  11. android sdcard下创建文件,android创建以及使用SDcard镜像文件
  12. 阿里前浪产品人*N,也谈产品和PM
  13. POJ 1088 滑雪(输出对比)
  14. 《数据结构与算法实战-周强-2.2》——大炮打蚊子
  15. @Validated规则校验和校验分组Group
  16. kingcms php 下载,KingCMS企业版(PHP)
  17. 传统音乐制作与计算机音乐制作,电脑音乐制作与传统音乐制作的方式差异分析...
  18. 实拍视频、图片素材库,高质量、免费下载。
  19. while(1);的作用
  20. 【vn.py学习笔记(二)】vn.py底层接口 学习笔记

热门文章

  1. ActiveMQ开发简明教程
  2. Django如何实现点赞、收藏以及浏览量增减
  3. 7 款殿堂级的开源 CMS(内容管理系统)
  4. matlab实现Kmeans聚类
  5. 辉羲智能完成天使+轮融资,用创新计算平台赋能智慧出行
  6. 如图,甲乙两人分别在AB两地同时相向而行,于E处相遇后,甲继续向B地行走,乙则休息了14分钟,在继续向A地行走,甲和乙到达B和A后立即折返,又在E处相遇,已知甲每分钟行走60米,乙每分钟行走80米
  7. android 自动挂断,android项目实现电话自动挂断的功能
  8. 【javaweb笔记1】自用
  9. PHP反序列化与SESSION
  10. 用python画佩奇_使用python画个小猪佩奇的示例代码