/*** 显示自定义吐丝* @param address*/private void showMyToast(String address) {if(view != null && mWM != null){mWM.removeView(view);mWM = null;view = null;}view = View.inflate(this, R.layout.toast_address, null);int skinSrc = sp.getInt("skinSrc",R.drawable.call_locate_orange);ll_toast_address = view.findViewById(R.id.ll_toast_address);ll_toast_address.setBackgroundResource(skinSrc);TextView tv_toast_address = (TextView) view.findViewById(R.id.tv_toast_address);tv_toast_address.setText(address);ll_toast_address.setOnTouchListener(new ToastDragListener());params = new WindowManager.LayoutParams();params.height = WindowManager.LayoutParams.WRAP_CONTENT;params.width = WindowManager.LayoutParams.WRAP_CONTENT;params.format = PixelFormat.TRANSLUCENT;params.gravity = Gravity.LEFT | Gravity.TOP;params.x = sp.getInt("addressL",150);params.y = sp.getInt("addressT", 220);params.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;params.setTitle("Toast");params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;mWM = (WindowManager)getSystemService(Context.WINDOW_SERVICE);mWM.addView(view, params);}/*** @author Administrator* 吐丝拖拽事件*/private class ToastDragListener implements OnTouchListener{private int startX;private int startY;@Overridepublic boolean onTouch(View v, MotionEvent event) {System.out.println("触发了触摸事件");switch (event.getAction()) {case MotionEvent.ACTION_DOWN:startX = (int) event.getRawX();startY = (int) event.getRawY();break;case MotionEvent.ACTION_MOVE:int newX = (int) event.getRawX();int newY = (int) event.getRawY();int x = params.x+newX-startX;int y = params.y+newY-startY;
if(x < 0 || y <0 || x+v.getWidth()>width || y + v.getHeight() > height){}else{params.x = x;params.y = y;mWM.updateViewLayout(view, params);}startX = newX;startY = newY;break;case MotionEvent.ACTION_UP:break;default:break;}return true;}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!