Android突击:FrameLayout制作霓虹灯效果
2015-07-11 00:11
477 查看
1,FrameLayout的层叠嵌套,类似于Photoshop的图层。可以实现类似霓虹灯的效果。代码大致如下:首先是main.xml:主要是几个TextView用来填充,使用的是FrameLayout的布局。
[/code]main.java里面是让Activity实现Runnable接口,在run()函数里设置每个TextView的背景颜色。并使用Handler来实现每隔多少秒执行一次。
[/code]
来自为知笔记(Wiz)
<?xmlversion="1.0"encoding="utf-8"?>
<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"android:layout_height="fill_parent">
<TextViewandroid:id="@+id/textview1"android:layout_width="300dp"
android:layout_height="300dp"android:layout_gravity="center"/>
<TextViewandroid:id="@+id/textview2"android:layout_width="240dp"
android:layout_height="240dp"android:layout_gravity="center"/>
<TextViewandroid:id="@+id/textview3"android:layout_width="180dp"
android:layout_height="180dp"android:layout_gravity="center"/>
<TextViewandroid:id="@+id/textview4"android:layout_width="120dp"
android:layout_height="120dp"android:layout_gravity="center"/>
<TextViewandroid:id="@+id/textview5"android:layout_width="60dp"
android:layout_height="60dp"android:layout_gravity="center"/>
</FrameLayout>
[/code]main.java里面是让Activity实现Runnable接口,在run()函数里设置每个TextView的背景颜色。并使用Handler来实现每隔多少秒执行一次。
packagecn.eoe.neonlight;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.view.View;
publicclassMainextendsActivityimplementsRunnable{
//5个TextView的颜色值
privateint[]colors=newint[]{0xFFFF0000,0xFF00FF00,0xFF0000FF,
0xFFFF00FF,0xFF00FFFF};
//每一次颜色的下一个颜色的索引,最后一个颜色的下一个颜色是第一个颜色,相当于循环链表
privateint[]nextColorPointers=newint[]{1,2,3,4,0};
privateView[]views;//保存5个TextView
privateintcurrentColorPointer=0;//当前颜色索引(指针)
privateHandlerhandler;
@Override
publicvoidrun(){
intnextColorPointer=currentColorPointer;
for(inti=views.length-1;i>=0;i--){
//设置当前TextView的背景颜色
views[i].setBackgroundColor(colors[nextColorPointers[nextColorPointer]]);
//获得下一个TextView的背景颜色值的索引(指针)
nextColorPointer=nextColorPointers[nextColorPointer];
}
currentColorPointer++;
if(currentColorPointer==5)
currentColorPointer=0;
handler.postDelayed(this,300);//每300毫秒循环一次
}
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化views数组
views=newView[]{findViewById(R.id.textview5),
findViewById(R.id.textview4),findViewById(R.id.textview3),
findViewById(R.id.textview2),findViewById(R.id.textview1)};
handler=newHandler();
handler.postDelayed(this,300);//每300毫秒循环一次
}
}
[/code]
相关文章推荐
- Android IntentService vs Service
- 我的Android进阶之旅------>Android使用AlarmManager全局定时器实现定时更换壁纸
- DOM解析XML文件3-SimpleAdapter_自定义布局
- 对应用进行单元测试
- 在Android程序中使用已有的SQLite数据库
- Android-PullToRefresh开源项目的使用
- 电话拨号器的实现
- DOM解析XML文件3-SimpleAdapter_自定义布局
- 对应用进行单元测试
- 在Android程序中使用已有的SQLite数据库
- Android-PullToRefresh开源项目的使用
- 电话拨号器的实现
- Android关于adjustResize无效,监听软键盘的隐藏显的解决方案
- Android开发拾遗(一)用Wi-Fi连接adb
- Android手机如何录制屏幕及转GIF
- Android 语音遥控器的整体分析
- Android 创建模块化接口
- Android 仿美团网,大众点评购买框悬浮效果实现
- Android Touch 事件的分发和消费机制
- android设置Activity背景色为透明的3种方