Android-保举一个全局悬浮窗的框架(FloatWindow)

开发者 2024-9-30 16:16:47 109 0 来自 中国
在一样平常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'}停止我发布博客,开源库版本是1.0.9。假如想要检察最新版本,请看开源库wiki
必要权限

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />底子使用

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)部门界面不展示

.setFilter(false, B_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");
您需要登录后才可以回帖 登录 | 立即注册

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

GMT+8, 2024-11-23 16:09, Processed in 0.170862 second(s), 32 queries.© 2003-2025 cbk Team.

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