开箱即用的 Android 悬浮窗
开箱即用的 Android 悬浮窗 FloatWindowX
1. 需要权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.ACTION_MANAGE_OVERLAY_PERMISSION" />
2. 最简单的使用
int x = (int) (Utils.getWidth() * 0.1F);
int y = (int) (Utils.getHeight() * 0.1F);
// floatView 自己来构造就可
FloatConfig floatConfig = new FloatConfig(floatView);
floatConfig.setTag(flag)
// 【必须】浮窗的宽
.setFloatViewWidth(Utils.dp2px(100))
// 【必须】浮窗的高
.setFloatViewHeight(Utils.dp2px(100))
// 【必须】相对屏幕的横坐标
.setRawX(x)
// 【必须】相对屏幕的纵坐标
.setRawY(y);
FloatX.get()
.addFloat(flag, floatConfig)
.show(flag);
3.高级一点
// 不需要展示的页面(进入这些页面不需要展示,但是退出后需要继续展示)
.setNotDisplayActivities(notDisplayActivities)
// 需要关闭的页面(一旦进入这些页面,就彻底销毁悬浮窗了。退出也不会展示,只有再次创建才可以)
.setCloseActivities(mCloseActivities)
// 【默认为不展示】是否需要在桌面也显示浮窗
.setDesktopShow(mDesktopShow.isChecked());
// 松手时动画
floatConfig.setTouchActionUpListener(new TouchActionUpListener() {
@Override
public boolean actionUp(@Nullable FloatViewController controller, float rawX, float rawY) {
// 如果业务的松手时动画有自己的需求,就在这里返回 true。然后实现自己的动画就好。
// controller.updateViewLocation(x,y); 可以改变 view 的位置。其他的 api 能不调就别调
return false;
}
});
网友评论