FloatingX 开源项目教程
项目介绍
FloatingX 是一个灵活且强大的悬浮窗解决方案,支持系统浮窗、应用内浮窗和局部浮窗。它提供了丰富的功能,如边缘吸附、回弹、自定义动画、位置保存、窗口化及分屏后位置修复等。FloatingX 支持 JetPack Compose,并且对 Kotlin 和 Java 都有良好的兼容性。
项目快速启动
添加依赖
首先,在项目的 build.gradle
文件中添加以下依赖:
dependencies {
implementation 'io.github.petterpx:floatingx:2.2.4'
}
初始化悬浮窗
在需要使用悬浮窗的 Activity 或 Fragment 中,初始化并显示悬浮窗:
import io.github.petterpx.floatingx.FloatingX
import io.github.petterpx.floatingx.helper.FxScopeType
FloatingX.install {
setContext(context)
setLayout(R.layout.item_floating)
setScopeType(FxScopeType.SYSTEM_AUTO)
}.show()
应用案例和最佳实践
系统浮窗
系统浮窗需要特殊权限,可以在 AndroidManifest.xml
中声明权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
应用内浮窗
应用内浮窗不需要特殊权限,可以直接在应用内显示:
FloatingX.install {
setContext(context)
setLayout(R.layout.item_floating)
setScopeType(FxScopeType.APP)
}.show()
局部浮窗
局部浮窗可以在 ViewGroup、Fragment 或 Activity 中显示:
val scopeHelper = ScopeHelper.builder {
setLayout(R.layout.item_floating)
}.build()
FloatingX.install(scopeHelper).show()
典型生态项目
FloatingX 可以与其他 Android 开源项目结合使用,例如:
- JetPack Compose: 结合 JetPack Compose 实现现代化的 UI 开发。
- RxJava: 使用 RxJava 处理悬浮窗的事件流。
- Room: 结合 Room 数据库保存悬浮窗的位置信息。
通过这些组合,可以进一步扩展 FloatingX 的功能,实现更加复杂和强大的悬浮窗应用。