美文网首页APP & program
Android 悬浮窗-开箱即用

Android 悬浮窗-开箱即用

作者: 大科爱吃肉 | 来源:发表于2022-06-14 08:59 被阅读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链接

相关文章

网友评论

    本文标题:Android 悬浮窗-开箱即用

    本文链接:https://www.haomeiwen.com/subject/ezaamrtx.html