Android 悬浮窗-开箱即用

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容