FloatWindow
(最新)Andorid 任意界面悬浮窗,实现悬浮窗如此简单
Install / Use
/learn @fenggit/FloatWindowREADME
FloatWindow 安卓任意界面悬浮窗

minSdkVersion 19
targetSdkVersion 29
特性:
1.支持桌面和App内悬浮,需要权限
2.支持仅仅在App内悬浮,不需要权限
3.支持自定义悬浮窗样式
4.支持拖动,提供自动贴边等动画
5.支持权限申请操作
集成:
第 1 步、在工程的 build.gradle 中添加:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
第 2 步、在应用的 build.gradle 中添加:
dependencies {
}
使用:
0.声明权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
1.基础使用
// 自定义的View
var view = LayoutInflater.from(context).inflate(R.layout.float_view, null)
var float = FloatWindow.With(context, view)
.setAutoAlign(true) //是否自动贴边
.setModality(false)
.setMoveAble(true) // 是否可拖动
.setStartLocation(0, (getScreenHeight(context) * 0.7).toInt())
.create()
2.TODO 指定界面显示
.setFilter(true, A_Activity.class, C_Activity.class)
此方法表示 A_Activity、C_Activity 显示悬浮窗,其他界面隐藏。
.setFilter(false, B_Activity.class)
1.知识点
-
app内悬浮窗使用的是:WindowManager.LayoutParams.TYPE_APPLICATION
-
桌面悬浮使用的是:WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY 和 WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
为什么app内悬浮窗使用的没有使用WindowManager.LayoutParams.TYPE_TOAST? 因为高版本不支持
Related Skills
node-connect
342.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
85.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
342.5kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
