美文网首页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