Android悬浮窗自由移动实现
网上很多这方面的文章,但总有诸多问题。主要有:一、悬浮窗移动手指离开后,再次移动时,悬浮窗自动回到初始位置开始移动。二、悬浮窗总是不肯老实地呆在手指边,手指点上去时会有一些不正常的位移。三、把状态栏的高度默认为25。【不同分辨率的状态栏会一样高吗?】更有甚者,好多直接在两次相减中把这个值给消掉了。事实上,这个值根本就是不需要设置的。
项目中要用到这个功能,自己研究了一下,贴出关键功能代码。其他代码请自行问谷歌。
悬浮窗初始化及监听Touch事件。
private static int statusBarHeight = 0;WindowManager wm = null;WindowManager.LayoutParams wmParams = null;View view;private float mTouchStartX;private float mTouchStartY;private float x;private float y;private static final String TAG = "FloatService";boolean initViewPlace = false;