码迷,mamicode.com
首页 > 移动开发 > 详细

Android突击:FrameLayout制作霓虹灯效果

时间:2015-07-11 00:58:20      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:

1,FrameLayout的层叠嵌套,类似于Photoshop的图层。可以实现类似霓虹灯的效果。
代码大致如下:
首先是main.xml:
主要是几个TextView用来填充,使用的是FrameLayout的布局。
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent" android:layout_height="fill_parent">
  4. <TextView android:id="@+id/textview1" android:layout_width="300dp"
  5. android:layout_height="300dp" android:layout_gravity="center" />
  6. <TextView android:id="@+id/textview2" android:layout_width="240dp"
  7. android:layout_height="240dp" android:layout_gravity="center" />
  8. <TextView android:id="@+id/textview3" android:layout_width="180dp"
  9. android:layout_height="180dp" android:layout_gravity="center" />
  10. <TextView android:id="@+id/textview4" android:layout_width="120dp"
  11. android:layout_height="120dp" android:layout_gravity="center" />
  12. <TextView android:id="@+id/textview5" android:layout_width="60dp"
  13. android:layout_height="60dp" android:layout_gravity="center" />
  14. </FrameLayout>
main.java里面是让Activity实现Runnable接口,在run()函数里设置每个TextView的背景颜色。并使用Handler来实现每隔多少秒执行一次。
  1. package cn.eoe.neonlight;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.os.Handler;
  5. import android.view.View;
  6. public class Main extends Activity implements Runnable {
  7. // 5个TextView的颜色值
  8. private int[] colors = new int[] { 0xFFFF0000, 0xFF00FF00, 0xFF0000FF,
  9. 0xFFFF00FF, 0xFF00FFFF };
  10. // 每一次颜色的下一个颜色的索引,最后一个颜色的下一个颜色是第一个颜色,相当于循环链表
  11. private int[] nextColorPointers = new int[] { 1, 2, 3, 4, 0 };
  12. private View[] views; // 保存5个TextView
  13. private int currentColorPointer = 0; // 当前颜色索引(指针)
  14. private Handler handler;
  15. @Override
  16. public void run() {
  17. int nextColorPointer = currentColorPointer;
  18. for (int i = views.length - 1; i >= 0; i--) {
  19. // 设置当前TextView的背景颜色
  20. views[i].setBackgroundColor(colors[nextColorPointers[nextColorPointer]]);
  21. // 获得下一个TextView的背景颜色值的索引(指针)
  22. nextColorPointer = nextColorPointers[nextColorPointer];
  23. }
  24. currentColorPointer++;
  25. if (currentColorPointer == 5)
  26. currentColorPointer = 0;
  27. handler.postDelayed(this, 300); // 每300毫秒循环一次
  28. }
  29. @Override
  30. public void onCreate(Bundle savedInstanceState) {
  31. super.onCreate(savedInstanceState);
  32. setContentView(R.layout.main);
  33. // 初始化views数组
  34. views = new View[] { findViewById(R.id.textview5),
  35. findViewById(R.id.textview4), findViewById(R.id.textview3),
  36. findViewById(R.id.textview2), findViewById(R.id.textview1) };
  37. handler = new Handler();
  38. handler.postDelayed(this, 300); // 每300毫秒循环一次
  39. }
  40. }





Android突击:FrameLayout制作霓虹灯效果

标签:

原文地址:http://www.cnblogs.com/zhuzhenfeng/p/4637761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!