Android-推荐一个全局悬浮窗的框架(FloatWindow)

Android-推荐一个全局悬浮窗的框架(FloatWindow)_第1张图片

在日常Android开发当中,我们可能要实现全局悬浮窗的需求。这里分享一个快速实现的框架,希望能帮小伙伴们提高开发效率。

FloatWindow

一个全局悬浮窗的框架,主要特性如下:

1.支持拖动,提供自动贴边等动画

2.内部自动进行权限申请操作

3.可自由指定要显示悬浮窗的界面

4.应用退到后台时,悬浮窗会自动隐藏

5.除小米外,4.4~7.0 无需权限申请

6.位置及宽高可设置百分比值,轻松适配各分辨率

7.支持权限申请结果、位置等状态监听

8.链式调用,简洁清爽

集成到项目

项目的build.gradle:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

应用的build.gradle:

dependencies {
    implementation 'com.github.yhaolpz:FloatWindow:1.0.9'
}

需要权限


基础使用

FloatWindow
       .with(getApplicationContext())
       .setView(view)
       .setWidth(100)                               //设置控件宽高
       .setHeight(Screen.width,0.2f)
       .setX(100)                                   //设置控件初始位置
       .setY(Screen.height,0.3f)
       .setDesktopShow(true)                        //桌面显示
       .setViewStateListener(mViewStateListener)    //监听悬浮控件状态改变
       .setPermissionListener(mPermissionListener)  //监听权限申请结果
       .build();

可以指定界面显示

.setFilter(true, A_Activity.class, C_Activity.class)

可拖动悬浮窗以及回弹动画

.setMoveType(MoveType.slide)
.setMoveStyle(500, new AccelerateInterpolator())  //贴边动画时长为500ms,加速插值器

主要有4种MoveType:

  • MoveType.slide : 可拖动,释放后自动贴边 (默认)

  • MoveType.back : 可拖动,释放后自动回到原位置

  • MoveType.active : 可拖动

  • MoveType.inactive : 不可拖动

setMoveStyle 方法可设置动画效果,只在 MoveType.slide 或 MoveType.back 模式下设置此项才有意义。默认减速插值器,默认动画时长为 300ms。

多个悬浮窗

FloatWindow
        .with(getApplicationContext())
        .setView(imageView)
        .build();

FloatWindow
      .with(getApplicationContext())
      .setView(button)
      .setTag("new")
      .build();


FloatWindow.get("new").show();
FloatWindow.get("new").hide();
FloatWindow.destroy("new");

你可能感兴趣的:(android,android,studio,gradle)