本文实例讲述了Android开发实现布局帧布局霓虹灯效果。分享给大家供大家参考,具体如下:
效果图:
实现方式:
FrameLayout中,设置8个TextView,在主函数中,设计颜色数组,通过有序替换他们颜色,实现渐变效果。
java代码:MainActivity
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
public class MainActivity extends AppCompatActivity { private int currentColor = 0 ; /* 定义颜色数组 实现颜色切换 类似鱼片切换 */ 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, R.color.color8 }; final int [] names= new int []{ R.id.view01, R.id.view02, R.id.view03, R.id.view04, R.id.view05, R.id.view06, R.id.view07, R.id.view08 }; TextView[] views = new TextView[names.length]; Handler handler = new Handler(){ @Override public void handleMessage(Message msg){ //表明消息由本日程发送 if (msg.what == 0x123 ){ for ( int i = 0 ; i < names.length; i++){ //更换颜色 views[i].setBackgroundResource(colors[ (i + currentColor) % names.length]); } currentColor++; } super .handleMessage(msg); } }; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); for ( int i = 0 ; i < names.length; i++){ //更换颜色 views[i] = (TextView) findViewById(names[i]); } //定义一个线程改变current变量值 new Timer().schedule( new TimerTask() { @Override public void run() { //发送一条空消息通知系统改变6个TextView颜色 handler.sendEmptyMessage( 0x123 ); } }, 0 , 300 ); } } |
xml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<? 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:id = "@+id/root" android:layout_width = "match_parent" android:layout_height = "match_parent" android:orientation = "vertical" > <!--依次定义六个TextView,先定义的位于底层 后定义的位于上层--> < TextView android:id = "@+id/view01" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_gravity = "center" android:width = "320dp" android:height = "320dp" android:background = "#ea7500" /> < TextView android:id = "@+id/view02" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_gravity = "center" android:width = "280dp" android:height = "280dp" android:background = "#ff8000" /> < TextView android:id = "@+id/view03" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_gravity = "center" android:width = "240dp" android:height = "240dp" android:background = "#ff9224" /> < TextView android:id = "@+id/view04" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_gravity = "center" android:width = "200dp" android:height = "200dp" android:background = "#ffa042" /> < TextView android:id = "@+id/view05" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_gravity = "center" android:width = "160dp" android:height = "160dp" android:background = "#ffaf60" /> < TextView android:id = "@+id/view06" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_gravity = "center" android:width = "120dp" android:height = "120dp" android:background = "#ffa042" /> < TextView android:id = "@+id/view07" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_gravity = "center" android:width = "80dp" android:height = "80dp" android:background = "#ff9224" /> < TextView android:id = "@+id/view08" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_gravity = "center" android:width = "40dp" android:height = "40dp" android:background = "#ff8000" /> </ FrameLayout > |
color资源文件设置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<? xml version = "1.0" encoding = "utf-8" ?> < resources > < color name = "colorPrimary" >#008577</ color > < color name = "colorPrimaryDark" >#00574B</ color > < color name = "colorAccent" >#D81B60</ color > < color name = "color1" >#844200</ color > < color name = "color2" >#d26900</ color > < color name = "color3" >#ff9224</ color > < color name = "color4" >#ffbb77</ color > < color name = "color5" >#ffd1a4</ color > < color name = "color6" >#ffaf60</ color > < color name = "color7" >#ff8000</ color > < color name = "color8" >#bb5e00</ color > </ resources > |
改编自疯狂java第三版
希望本文所述对大家Android程序设计有所帮助。
原文链接:https://blog.csdn.net/qq_43377749/article/details/83792467