1818import android .content .Context ;
1919import android .content .Intent ;
2020import android .content .SharedPreferences ;
21+ import android .content .res .Configuration ;
2122import android .graphics .Color ;
2223import android .graphics .Rect ;
2324import android .os .Bundle ;
@@ -131,8 +132,8 @@ protected void onCreate(Bundle savedInstanceState) {
131132 @ Override
132133 public void onClick (View v ) {
133134// ((ViewGroup) v.getParent()).removeView(v);
134- FloatWindow .destroy ();
135- FloatWindow .destroy ("ball " );
135+ FloatWindow .destroy ("v" );
136+ FloatWindow .destroy ("v_ball " );
136137 startActivity (UIAutoActivity .createIntent (DemoApplication .getInstance ()));
137138 }
138139 });
@@ -196,6 +197,14 @@ public boolean onTouch(View v, MotionEvent event) {
196197// event.offsetLocation(0, a.getWindow().getDecorView().findViewById(android.R.id.content).getTop());
197198 event .offsetLocation (0 , rectangle .top );
198199 a .dispatchTouchEvent (event );
200+
201+ //放到 Application 中 have already added to window manager
202+ new Handler ().postDelayed (new Runnable () {
203+ @ Override
204+ public void run () {
205+ showCover (true , a );
206+ }
207+ }, 1000 );
199208 } else {
200209 //TODO 不是本 APP 的界面
201210 }
@@ -231,7 +240,7 @@ public boolean onTouch(View v, MotionEvent event) {
231240//死循环 llTouch.dispatchTouchEvent(event);
232241// vDispatchTouch.dispatchTouchEvent(event);
233242// vDispatchTouch.dispatchTouchEvent(event);
234- //onTouchEvent 不能处理事件 vDispatchTouch.onTouchEvent(event);
243+ //onTouchEvent 不能处理事件 vDispatchTouch.onTouchEvent(event);
235244// vTouch.setOnTouchListener(this);
236245 return true ; //连续记录只能 return true
237246 }
@@ -252,6 +261,7 @@ public boolean onTouch(View v, MotionEvent event) {
252261 }
253262 });
254263
264+
255265 btnButton .setOnLongClickListener (new View .OnLongClickListener () {
256266 @ Override
257267 public boolean onLongClick (View v ) {
@@ -260,7 +270,6 @@ public boolean onLongClick(View v) {
260270 }
261271 });
262272
263-
264273 new Handler ().postDelayed (new Runnable () {
265274 @ Override
266275 public void run () {
@@ -276,7 +285,6 @@ public void run() {
276285 }
277286 }, 1000 );
278287
279-
280288 cover .setOnTouchListener (listener );
281289
282290 }
@@ -286,9 +294,17 @@ public void onClick(View v) {
286294 cover .setVisibility (View .VISIBLE );
287295 Toast .makeText (context , "onClick BUTTON" , Toast .LENGTH_SHORT ).show ();
288296
289- if (FloatWindow .get ()== null ) {
297+ showCover (true , context );
298+
299+ // finish();
300+ }
301+
302+ private void showCover (boolean show , Activity activity ) {
303+ //TODO 为纵屏、横屏分别加两套,判断屏幕方向来显示对应的一套
304+ if (FloatWindow .get ("v" )== null ) {
290305 FloatWindow
291306 .with (getApplicationContext ())
307+ .setTag ("v" )
292308 .setView (cover )
293309 .setWidth (screenWidth ) //设置控件宽高
294310 .setHeight (screenHeight )
@@ -300,13 +316,12 @@ public void onClick(View v) {
300316// .setPermissionListener(mPermissionListener) //监听权限申请结果
301317 .build ();
302318 }
303- FloatWindow .get ().show ();
304319
305320
306- if (FloatWindow .get ("ball " ) == null ) {
321+ if (FloatWindow .get ("v_ball " ) == null ) {
307322 FloatWindow
308323 .with (getApplicationContext ())
309- .setTag ("ball " )
324+ .setTag ("v_ball " )
310325 .setView (divider )
311326 .setWidth (screenWidth ) //设置控件宽高
312327 .setHeight ((int ) dividerHeight )
@@ -319,11 +334,58 @@ public void onClick(View v) {
319334// .setPermissionListener(mPermissionListener) //监听权限申请结果
320335 .build ();
321336 }
322- FloatWindow .get ("ball" ).show ();
323337
324- // finish();
338+ //TODO 新建一个 have already added to window manager
339+
340+ // if (FloatWindow.get("h")== null) {
341+ // FloatWindow
342+ // .with(getApplicationContext())
343+ // .setTag("h")
344+ // .setView(cover)
345+ // .setWidth(screenWidth) //设置控件宽高
346+ // .setHeight(screenHeight)
347+ // .setX(0) //设置控件初始位置
348+ // .setY(0)
349+ // .setMoveType(MoveType.inactive)
350+ // .setDesktopShow(true) //桌面显示
351+ //// .setViewStateListener(mViewStateListener) //监听悬浮控件状态改变
352+ //// .setPermissionListener(mPermissionListener) //监听权限申请结果
353+ // .build();
354+ // }
355+ //
356+ // if (FloatWindow.get("h_ball") == null) {
357+ // FloatWindow
358+ // .with(getApplicationContext())
359+ // .setTag("h_ball")
360+ // .setView(divider)
361+ // .setWidth(screenWidth) //设置控件宽高
362+ // .setHeight((int) dividerHeight)
363+ // .setX(0) //设置控件初始位置
364+ // .setY((int) (dividerY + dividerHeight/2))
365+ //// .setY(screenHeight/2)
366+ // .setMoveType(MoveType.slide)
367+ // .setDesktopShow(true) //桌面显示
368+ //// .setViewStateListener(mViewStateListener) //监听悬浮控件状态改变
369+ //// .setPermissionListener(mPermissionListener) //监听权限申请结果
370+ // .build();
371+ // }
372+
373+ FloatWindow .get ("v" ).hide ();
374+ FloatWindow .get ("v_ball" ).hide ();
375+ // FloatWindow.get("h").hide();
376+ // FloatWindow.get("h_ball").hide();
377+ if (show ) {
378+ if (activity .getResources ().getConfiguration ().orientation == Configuration .ORIENTATION_PORTRAIT ) {
379+ FloatWindow .get ("v" ).show ();
380+ FloatWindow .get ("v_ball" ).show ();
381+ } else {
382+ // FloatWindow.get("h").show();
383+ // FloatWindow.get("h_ball").show();
384+ }
385+ }
325386 }
326387
388+
327389 /**
328390 * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
329391 */
0 commit comments