1
1
package com .wuyr .pathlayoutmanagertest ;
2
2
3
+ import android .annotation .SuppressLint ;
3
4
import android .graphics .Path ;
4
5
import android .os .Bundle ;
5
6
import android .support .annotation .Nullable ;
6
- import android .support .design .widget .BottomSheetDialog ;
7
+ import android .support .v4 .widget .DrawerLayout ;
8
+ import android .support .v7 .app .ActionBarDrawerToggle ;
7
9
import android .support .v7 .app .AppCompatActivity ;
8
10
import android .support .v7 .widget .RecyclerView ;
9
- import android .view . LayoutInflater ;
11
+ import android .text . TextUtils ;
10
12
import android .view .View ;
11
13
import android .widget .CompoundButton ;
12
14
import android .widget .SeekBar ;
13
- import android .widget .Switch ;
15
+ import android .widget .TextView ;
16
+ import android .widget .Toast ;
14
17
15
18
import java .util .ArrayList ;
16
19
import java .util .List ;
17
20
18
21
/**
19
22
* Created by wuyr on 18-5-21 下午11:25.
20
23
*/
21
- public class MainActivity extends AppCompatActivity {
24
+ public class MainActivity extends AppCompatActivity implements CompoundButton . OnCheckedChangeListener , SeekBar . OnSeekBarChangeListener {
22
25
23
- private BottomSheetDialog mMenuDialog ;
24
26
private PathLayoutManager mPathLayoutManager ;
25
- private CanvasView mView , mCanvasView ;
26
- private MyAdapter mAdapter ;
27
+ private CanvasView mTrackView , mCanvasView ;
28
+ private PathAdapter mAdapter ;
29
+ private Toast mToast ;
27
30
31
+ @ SuppressLint ("ShowToast" )
28
32
@ Override
29
33
protected void onCreate (@ Nullable Bundle savedInstanceState ) {
30
34
super .onCreate (savedInstanceState );
@@ -33,124 +37,161 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
33
37
LogUtil .setIsShowClassName (false );
34
38
35
39
setContentView (R .layout .act_main_view );
36
-
37
- initMenuDialog ();
38
- // initView();
39
- }
40
-
41
- private void initMenuDialog () {
42
- View menuView = LayoutInflater .from (this ).inflate (R .layout .layout_menu , null , false );
43
-
44
-
45
- mMenuDialog = new BottomSheetDialog (this );
46
- mMenuDialog .setContentView (menuView );
40
+ initView ();
47
41
}
48
42
49
43
private void initView () {
50
- mView = findViewById (R .id .track_panel );
44
+ ActionBarDrawerToggle toggle = new ActionBarDrawerToggle (
45
+ this , findViewById (R .id .drawer ), findViewById (R .id .toolbar ),
46
+ R .string .app_name , R .string .app_name );
47
+ ((DrawerLayout ) findViewById (R .id .drawer )).addDrawerListener (toggle );
48
+ toggle .syncState ();
49
+
50
+ mTrackView = findViewById (R .id .track_panel );
51
51
mCanvasView = findViewById (R .id .canvas_view );
52
52
RecyclerView recyclerView = findViewById (R .id .recycler_view );
53
53
recyclerView .setLayoutManager (mPathLayoutManager = new PathLayoutManager (null , 50 ));
54
- recyclerView .setAdapter (mAdapter = new MyAdapter (this , null ));
55
-
56
- SeekBar seekBar = findViewById (R .id .item_offset );
57
- seekBar .setOnSeekBarChangeListener (new SeekBar .OnSeekBarChangeListener () {
58
- @ Override
59
- public void onProgressChanged (SeekBar seekBar , int progress , boolean fromUser ) {
60
- mPathLayoutManager .setItemOffset (progress );
61
- }
62
-
63
- @ Override
64
- public void onStartTrackingTouch (SeekBar seekBar ) {
54
+ recyclerView .setAdapter (mAdapter = new PathAdapter (this , null ));
65
55
66
- }
67
-
68
- @ Override
69
- public void onStopTrackingTouch (SeekBar seekBar ) {
70
-
71
-
72
- }
73
- });
74
-
75
- Switch itemDirectionFixed = findViewById (R .id .direction_fixed );
76
- Switch allowOverflow = findViewById (R .id .allow_overflow );
77
- Switch unlimitedScroll = findViewById (R .id .unlimited_scroll );
78
-
79
- CompoundButton .OnCheckedChangeListener listener = (buttonView , isChecked ) -> {
80
- switch (buttonView .getId ()) {
81
- case R .id .direction_fixed :
82
- mPathLayoutManager .setItemDirectionFixed (isChecked );
83
- break ;
84
- case R .id .unlimited_scroll :
85
- mPathLayoutManager .setUnlimitedScroll (isChecked );
86
- if (isChecked ) {
87
- allowOverflow .setChecked (false );
88
- }
89
- break ;
90
- case R .id .allow_overflow :
91
- mPathLayoutManager .setAllowOverflow (isChecked );
92
- if (isChecked ) {
93
- unlimitedScroll .setChecked (false );
94
- }
95
- break ;
96
- default :
97
- break ;
98
- }
99
- };
100
-
101
- itemDirectionFixed .setOnCheckedChangeListener (listener );
102
- unlimitedScroll .setOnCheckedChangeListener (listener );
103
- allowOverflow .setOnCheckedChangeListener (listener );
56
+ mToast = Toast .makeText (this , "" , Toast .LENGTH_SHORT );
104
57
58
+ findViewById (R .id .card ).setEnabled (false );
59
+ findViewById (R .id .normal ).setEnabled (false );
60
+ ((SeekBar ) findViewById (R .id .item_offset )).setOnSeekBarChangeListener (this );
61
+ ((SeekBar ) findViewById (R .id .auto_select_fraction )).setOnSeekBarChangeListener (this );
105
62
}
106
63
107
64
public void handleOnClick (View view ) {
108
-
109
- }
110
-
111
- public void horizontalScroll (View view ) {
112
- mPathLayoutManager .setOrientation (RecyclerView .HORIZONTAL );
113
- mPathLayoutManager .smoothScrollToPosition (2 );
114
- }
115
-
116
- public void verticalScroll (View view ) {
117
- mPathLayoutManager .setOrientation (RecyclerView .VERTICAL );
118
- }
119
-
120
- public void startDraw (View view ) {
121
- mCanvasView .setVisibility (View .VISIBLE );
122
- mCanvasView .clear ();
123
- mView .setVisibility (View .INVISIBLE );
65
+ switch (view .getId ()) {
66
+ case R .id .start_draw :
67
+ mAdapter .clearData ();
68
+ mCanvasView .setVisibility (View .VISIBLE );
69
+ mCanvasView .clear ();
70
+ mTrackView .setVisibility (View .INVISIBLE );
71
+ break ;
72
+ case R .id .end_draw :
73
+ Path path = mCanvasView .getPath ();
74
+ if (path != null && !path .isEmpty ()) {
75
+ mCanvasView .setVisibility (View .INVISIBLE );
76
+ mTrackView .setPath (mCanvasView .getPath ());
77
+ mTrackView .setVisibility (View .VISIBLE );
78
+ mPathLayoutManager .updatePath (mCanvasView .getPath ());
79
+ }
80
+ break ;
81
+ case R .id .add :
82
+ List <String > data = new ArrayList <>();
83
+ for (int i = mAdapter .getItemCount (); i < mAdapter .getItemCount () + 10 ; i ++) {
84
+ data .add ("" + i );
85
+ }
86
+ mAdapter .addData (data );
87
+ break ;
88
+ case R .id .remove :
89
+ for (int i = 0 ; i < 10 ; i ++) {
90
+ mAdapter .removeData (mAdapter .getItemCount () - 1 );
91
+ }
92
+ break ;
93
+
94
+ case R .id .card :
95
+ view .setEnabled (false );
96
+ findViewById (R .id .j20 ).setEnabled (true );
97
+ findViewById (R .id .dragon ).setEnabled (true );
98
+
99
+ break ;
100
+ case R .id .j20 :
101
+ view .setEnabled (false );
102
+ findViewById (R .id .card ).setEnabled (true );
103
+ findViewById (R .id .dragon ).setEnabled (true );
104
+ break ;
105
+ case R .id .dragon :
106
+ view .setEnabled (false );
107
+ findViewById (R .id .card ).setEnabled (true );
108
+ findViewById (R .id .j20 ).setEnabled (true );
109
+ break ;
110
+
111
+ case R .id .normal :
112
+ view .setEnabled (false );
113
+ findViewById (R .id .overflow ).setEnabled (true );
114
+ findViewById (R .id .loop ).setEnabled (true );
115
+ mPathLayoutManager .setScrollMode (PathLayoutManager .SCROLL_MODE_NORMAL );
116
+ break ;
117
+ case R .id .overflow :
118
+ view .setEnabled (false );
119
+ findViewById (R .id .normal ).setEnabled (true );
120
+ findViewById (R .id .loop ).setEnabled (true );
121
+ mPathLayoutManager .setScrollMode (PathLayoutManager .SCROLL_MODE_OVERFLOW );
122
+ break ;
123
+ case R .id .loop :
124
+ view .setEnabled (false );
125
+ findViewById (R .id .overflow ).setEnabled (true );
126
+ findViewById (R .id .normal ).setEnabled (true );
127
+ mPathLayoutManager .setScrollMode (PathLayoutManager .SCROLL_MODE_LOOP );
128
+ break ;
129
+
130
+ case R .id .apply_scale_ratio :
131
+ String content = ((TextView ) findViewById (R .id .scale_ratio_text )).getText ().toString ();
132
+ if (TextUtils .isEmpty (content )) {
133
+ mPathLayoutManager .setItemScaleRatio ();
134
+ } else {
135
+ String [] ratiosString = content .split ("," );
136
+ float [] ratios = new float [ratiosString .length ];
137
+ try {
138
+ for (int i = 0 ; i < ratiosString .length ; i ++) {
139
+ ratios [i ] = Float .parseFloat (ratiosString [i ]);
140
+ }
141
+ mPathLayoutManager .setItemScaleRatio (ratios );
142
+ } catch (Exception e ) {
143
+ mToast .setText (e .toString ());
144
+ mToast .show ();
145
+ }
146
+ }
147
+ break ;
148
+ default :
149
+ break ;
150
+ }
124
151
}
125
152
126
- public void stopDraw (View view ) {
127
- Path path = mCanvasView .getPath ();
128
- if (path != null && !path .isEmpty ()) {
129
- mCanvasView .setVisibility (View .INVISIBLE );
130
- mView .setPath (mCanvasView .getPath ());
131
- mView .setVisibility (View .VISIBLE );
132
- mPathLayoutManager .updatePath (mCanvasView .getPath ());
153
+ @ Override
154
+ public void onCheckedChanged (CompoundButton buttonView , boolean isChecked ) {
155
+ switch (buttonView .getId ()) {
156
+ case R .id .orientation :
157
+ mPathLayoutManager .setOrientation (isChecked ? RecyclerView .VERTICAL : RecyclerView .HORIZONTAL );
158
+ break ;
159
+ case R .id .direction_fixed :
160
+ mPathLayoutManager .setItemDirectionFixed (isChecked );
161
+ break ;
162
+ case R .id .auto_select :
163
+ mPathLayoutManager .setAutoSelect (isChecked );
164
+ break ;
165
+ default :
166
+ break ;
133
167
}
134
168
}
135
169
136
- public void addItem (View view ) {
137
- List <String > data = new ArrayList <>();
138
- for (int i = mAdapter .getItemCount (); i < mAdapter .getItemCount () + 10 ; i ++) {
139
- data .add ("" + i );
170
+ @ Override
171
+ public void onProgressChanged (SeekBar seekBar , int progress , boolean fromUser ) {
172
+ switch (seekBar .getId ()) {
173
+ case R .id .item_offset :
174
+ mPathLayoutManager .setItemOffset (progress );
175
+ mToast .setText (String .valueOf (progress ));
176
+ break ;
177
+ case R .id .auto_select_fraction :
178
+ float fraction = progress / 100F ;
179
+ mPathLayoutManager .setAutoSelectFraction (fraction );
180
+ mToast .setText (String .valueOf (fraction ));
181
+ break ;
182
+ default :
183
+ break ;
140
184
}
141
- mAdapter .addData (data );
142
- // mAdapter.notifyDataSetChanged();
185
+ mToast .show ();
143
186
}
144
187
145
- public void removeItem (View view ) {
146
- for (int i = 0 ; i < 10 ; i ++) {
147
- mAdapter .removeData (mAdapter .getItemCount () - 1 );
148
- }
188
+ @ Override
189
+ public void onStartTrackingTouch (SeekBar seekBar ) {
190
+
149
191
}
150
192
151
- public void showMenu (View view ) {
152
- if (!mMenuDialog .isShowing ()) {
153
- mMenuDialog .show ();
154
- }
193
+ @ Override
194
+ public void onStopTrackingTouch (SeekBar seekBar ) {
195
+
155
196
}
156
197
}
0 commit comments