Android 悬浮窗-开箱即用

源代码 2024-9-18 09:57:40 61 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链接
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 22:36, Processed in 0.090649 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表