利用属性动画实现优酷菜单,供大家参考,具体内容如下
布局文件
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
< RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android" xmlns:tools = "http://schemas.android.com/tools" android:layout_width = "fill_parent" android:layout_height = "fill_parent" > < RelativeLayout android:layout_width = "280dip" android:layout_height = "140dip" android:layout_alignParentBottom = "true" android:layout_centerHorizontal = "true" android:id = "@+id/level3" android:background = "@drawable/level3" > < ImageButton android:id = "@+id/c1" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_alignParentBottom = "true" android:layout_marginBottom = "6dip" android:layout_marginLeft = "12dip" android:background = "@drawable/channel1" /> < ImageButton android:id = "@+id/c2" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_above = "@id/c1" android:layout_marginBottom = "12dip" android:layout_marginLeft = "28dip" android:background = "@drawable/channel2" /> < ImageButton android:id = "@+id/c3" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_above = "@id/c2" android:layout_marginBottom = "6dip" android:layout_marginLeft = "8dip" android:layout_toRightOf = "@id/c2" android:background = "@drawable/channel3" /> < ImageButton android:id = "@+id/c4" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerHorizontal = "true" android:layout_margin = "6dip" android:background = "@drawable/channel4" /> < ImageButton android:id = "@+id/c5" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_above = "@+id/c6" android:layout_marginBottom = "6dip" android:layout_marginRight = "8dip" android:layout_toLeftOf = "@+id/c6" android:background = "@drawable/channel5" /> < ImageButton android:id = "@+id/c6" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_above = "@+id/c7" android:layout_marginBottom = "12dip" android:layout_marginRight = "28dip" android:layout_alignParentRight = "true" android:background = "@drawable/channel6" /> < ImageButton android:id = "@+id/c7" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_alignParentBottom = "true" android:layout_marginBottom = "6dip" android:layout_marginRight = "12dip" android:layout_alignParentRight = "true" android:background = "@drawable/channel7" /> </ RelativeLayout > < RelativeLayout android:layout_width = "180dip" android:layout_height = "90dip" android:layout_alignParentBottom = "true" android:layout_centerHorizontal = "true" android:id = "@+id/level2" android:background = "@drawable/level2" > < ImageButton android:id = "@+id/search" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_alignParentBottom = "true" android:layout_margin = "10dip" android:background = "@drawable/icon_search" /> < ImageButton android:id = "@+id/menu" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerHorizontal = "true" android:layout_margin = "6dip" android:background = "@drawable/icon_menu" /> < ImageButton android:id = "@+id/myyouku" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_alignParentBottom = "true" android:layout_alignParentRight = "true" android:layout_margin = "10dip" android:background = "@drawable/icon_myyouku" /> </ RelativeLayout > < RelativeLayout android:layout_width = "100dip" android:layout_height = "50dip" android:layout_alignParentBottom = "true" android:layout_centerHorizontal = "true" android:background = "@drawable/level1" > < ImageButton android:id = "@+id/home" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_centerInParent = "true" android:background = "@drawable/icon_home" /> </ RelativeLayout > </ RelativeLayout > |
核心代码
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
package com.example.uumusic.menu; import android.content.Context; import android.view.View; import android.widget.ImageButton; import android.widget.RelativeLayout; import android.widget.Toast; import com.example.uumusic.R; import com.example.uumusic.fragment.base.BasePager; import com.example.uumusic.utils.Tools; import butterknife.ButterKnife; import butterknife.InjectView; /** * Created by Administrator on 2017.06.07.0007. */ public class YoukuMenu extends BasePager { @InjectView (R.id.c1) ImageButton c1; @InjectView (R.id.c2) ImageButton c2; @InjectView (R.id.c3) ImageButton c3; @InjectView (R.id.c4) ImageButton c4; @InjectView (R.id.c5) ImageButton c5; @InjectView (R.id.c6) ImageButton c6; @InjectView (R.id.c7) ImageButton c7; @InjectView (R.id.level3) RelativeLayout level3; @InjectView (R.id.search) ImageButton search; @InjectView (R.id.menu) ImageButton menu; @InjectView (R.id.myyouku) ImageButton myyouku; @InjectView (R.id.level2) RelativeLayout level2; @InjectView (R.id.home) ImageButton home; private boolean isLeve12 = true ; private boolean isLeve13 = true ; public YoukuMenu(Context context) { super (context); } @Override public View initView() { View view = View.inflate(mContext, R.layout.fragment_youku, null ); ButterKnife.inject( this ,view); return view; } @Override public void initData() { //为按钮设置点击事件 home.setOnClickListener( new MyOnClickLisetner()); menu.setOnClickListener( new MyOnClickLisetner()); } class MyOnClickLisetner implements View.OnClickListener{ @Override public void onClick(View v) { switch (v.getId()){ case R.id.home: //当点击home按钮时,开始进行动画的效果 if (isLeve12){ isLeve12 = false ; Tools.hide(level2); if (isLeve13){ isLeve13 = false ; Tools.hide(level3, 200 ); } } else { isLeve12 = true ; Tools.show(level2); } break ; case R.id.menu: if (isLeve13){ isLeve13 = false ; Tools.hide(level3); } else { isLeve13 = true ; Tools.show(level3); } break ; } } } } |
动画工具类
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
|
package com.example.uumusic.utils; import android.animation.ObjectAnimator; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.view.animation.RotateAnimation; import android.widget.RelativeLayout; /** * Created by Administrator on 2017.06.07.0007. */ public class Tools { //隐藏布局 public static void hide(ViewGroup view) { hide(view, 0 ); } //显示布局 public static void show(ViewGroup view) { //使用属性动画实现菜单的旋转 ObjectAnimator animator = ObjectAnimator.ofFloat(view, "rotation" , 180 , 360 ); //设置动画时长 animator.setDuration( 300 ); animator.start(); view.setPivotX(view.getWidth()/ 2 ); view.setPivotY(view.getHeight()); } //延迟隐藏 public static void hide(ViewGroup view, int i) { ObjectAnimator animator = ObjectAnimator.ofFloat(view, "rotation" , 0 , 180 ); //设置动画时长 animator.setDuration( 300 ); //设置延迟 animator.setStartDelay(i); animator.start(); view.setPivotX(view.getWidth()/ 2 ); view.setPivotY(view.getHeight()); } } |
源码:Android利用属性动画实现优酷菜单
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_32890771/article/details/72911030