APP & program

Android 悬浮窗-开箱即用

2022-06-14  本文已影响0人  大科爱吃肉

开箱即用的 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;

  }

});

git链接

上一篇 下一篇

猜你喜欢

热点阅读