Android笔记(2)---帧布局实现霓虹灯效果
2015-12-18 12:23
381 查看
目的:实现霓虹灯效果
步骤:1.创建一个帧布局文件,在里面放上4个TextView 把background的颜色改成不同的;
2.创建一个TextView id的数组,一个颜色 id的数组,一个TextView[] 的数组,这个数组 是方便 我们 findViewById使用的 可以通过循环 这样就不用一个个的 写代码。
3.通过handle来进行 对控件背景颜色的调整 每隔一秒钟 变化一次。
代码:
1. 布局文件代码
2.
3. 这里也有一个handler.postDelayed()方法 ,这样 两个方法就形成了一个 每一秒执行一次的定时器操作 已达到霓虹灯 一直变化颜色效果。
也可以通过 time.schedule方法来执行 这个方法大意是 每隔多少秒 重复发送一个 handler的message信息。
上面通过自定义一个handler 调用 handleMessage方法 来接收 系统发来的这个message信息 然后在里面进行 TextView的 颜色切换 也能达到霓虹灯效果。
步骤:1.创建一个帧布局文件,在里面放上4个TextView 把background的颜色改成不同的;
2.创建一个TextView id的数组,一个颜色 id的数组,一个TextView[] 的数组,这个数组 是方便 我们 findViewById使用的 可以通过循环 这样就不用一个个的 写代码。
3.通过handle来进行 对控件背景颜色的调整 每隔一秒钟 变化一次。
代码:
1. 布局文件代码
<TextView android:layout_width="400dp" android:layout_height="400dp" android:background="#f0f" android:id="@+id/tv1" android:layout_gravity="center"/> <TextView android:layout_width="300dp" android:layout_height="300dp" android:background="#0f0" android:id="@+id/tv2" android:layout_gravity="center"/> <TextView android:layout_width="200dp" android:layout_height="200dp" android:background="#00f" android:id="@+id/tv3" android:layout_gravity="center"/> <TextView android:layout_width="100dp" android:layout_height="100dp" android:background="#f00" android:id="@+id/tv4" android:layout_gravity="center"/>
2.
private int[] names={R.id.tv1,R.id.tv2,R.id.tv3,R.id.tv4}; private int[] colors={R.color.color1,R.color.color2,R.color.color3,R.color.color4}; private TextView[] tv=new TextView[names.length]; private int current=0; Handler handler=new Handler(); myRunable r=new myRunable(); private class myRunable implements Runnable{ @Override public void run() { for(int i=0;i<names.length;i++) { tv[i].setBackgroundResource(colors[(i + current) % names.length]); } current++; handler.postDelayed(r,1000); //这个方法是 每隔一秒发送一次 只发送一次 r参数是一个Runnable的对象 。 } }
3. 这里也有一个handler.postDelayed()方法 ,这样 两个方法就形成了一个 每一秒执行一次的定时器操作 已达到霓虹灯 一直变化颜色效果。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for (int i=0;i<names.length;i++) { tv[i] = (TextView) findViewById(names[i]); } handler.postDelayed(r, 1000); }
也可以通过 time.schedule方法来执行 这个方法大意是 每隔多少秒 重复发送一个 handler的message信息。
new Timer().schedule(new TimerTask() { @Override public void run() { handler.sendEmptyMessage(0x123); } },0,500);
上面通过自定义一个handler 调用 handleMessage方法 来接收 系统发来的这个message信息 然后在里面进行 TextView的 颜色切换 也能达到霓虹灯效果。
Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if(msg.what == 0x123) 判断 消息标识 是不是 0x123; {
这里面写上 修改控件的 代码。
}
}
}
相关文章推荐
- Android学习笔记——自定义CircleProgressBarView
- Android
- Android GreenDao使用详解
- 不会内存溢出的Android Handler写法
- 《Android群英传》读书笔记(6)第六章:Android绘图机制与处理技巧之二
- Android Dialog
- 使用Android Studio时你应该知道的
- Android手机如何录制屏幕及转GIF
- Android软键盘及输入法顶起TabBar的解决方法
- Android桌面组件播放器
- Android Studio的基本设置和常用快捷键(Mac 版)
- TweenAnimation 渐变动画
- Android之ListView和ScrollView事件冲突
- Android layout_weight 属性解密
- 直接拿来用!最火的Android开源项目(完结篇)
- 直接拿来用!最火的Android开源项目(二)
- Where can i download Android & iOS source code of TI BLE Multitool
- Android弹性滑动
- 直接拿来用!最火的Android开源项目(一)
- Android studio No executable code found 断点不可用