实现悬浮球的桌面显示
本篇是Android实战之悬浮球菜单App实现的分支,做学习记录使用。
本篇介绍悬浮球的桌面显示部分,主要分为WindowManager部分,以及菜单的策略和显示位置的计算。
WindowManager
通过WindowManager来托管悬浮球view,首先初始化:
mWindowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
wmParams = new WindowManager.LayoutParams();
wmParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
wmParams.format = PixelFormat.RGBA_8888;
wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
//这是我设置起始位置
wmParams.gravity = Gravity.LEFT | Gravity.TOP;
wmParams.x = 1000;
wmParams.y = 500;
//托管悬浮球view
mWindowManager.addView(mFloatingLayout, wmParams);
//托管菜单view
mWindowManager.addView(menu, wmParams);
再通过setOnTouchListener()对悬浮球做追踪,实现可拖动:
private class FloatingListener implements</