自定义吐司工具类
public class Toast {
private static WindowManager mWM;
public static void show(Context context, final View view) {
mWM = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
final WindowManager.LayoutParams params = new WindowManager.LayoutParams();
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.format = PixelFormat.TRANSLUCENT;
params.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;
params.gravity = Gravity.LEFT + Gravity.TOP;
params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
view.setOnTouchListener(new View.OnTouchListener() {
public float starty;
public float startx;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startx = event.getRawX();
starty = event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
float newx = event.getRawX();
float newy = event.getRawY();
int dx = (int) (newx - startx + 0.5f);
int dy = (int) (newy - starty + 0.5f);
//移动赋值
params.x += dx;
params.y += dy;
//设置不超出屏幕
if (params.x < 0) {
params.x = 0;
}
if (params.y < 0) {
params.y = 0;
}
if (params.x > mWM.getDefaultDisplay().getWidth() - v.getWidth()) {
params.x = mWM.getDefaultDisplay().getWidth() - v.getWidth();
}
if (params.y > mWM.getDefaultDisplay().getHeight() - v.getHeight()) {
params.y = mWM.getDefaultDisplay().getHeight() - v.getHeight();
}
//通知移动
mWM.updateViewLayout(view, params);
startx = event.getRawX();
starty = event.getRawY();
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
});
mWM.addView(view, params);
}
public static void onDestroy(View view){
if(mWM!=null&&view!=null) {
mWM.removeView(view);
view = null;
}
}
}