基于activity实现一个全局悬浮球
时间: 2023-12-09 13:04:00 浏览: 33
要实现一个全局悬浮球,可以通过以下步骤:
1. 创建一个继承自 Activity 的类,作为悬浮球的容器。在 onCreate 方法中,设置容器的布局、位置等属性。
2. 在容器中添加一个悬浮球的 View,可以使用 ImageView 或其他自定义 View。设置悬浮球的大小、位置、图标等属性,并添加到容器中。
3. 为悬浮球 View 设置触摸事件监听器,实现悬浮球的拖动和点击事件。可以通过设置 WindowManager.LayoutParams 的 x, y 坐标来实现悬浮球的拖动,通过 startActivity 方法启动一个新的 Activity 来处理悬浮球的点击事件。
4. 在 AndroidManifest.xml 文件中为容器 Activity 添加以下属性,使其可以在其他应用程序的顶部显示:
```xml
<activity
android:name=".FloatingActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
android:label="@string/app_name"
android:launchMode="singleInstance"
android:taskAffinity=""
android:excludeFromRecents="true"
android:configChanges="orientation|keyboardHidden|screenSize"
android:windowSoftInputMode="adjustResize"
android:resizeableActivity="false">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
```
5. 在 AndroidManifest.xml 文件中添加 SYSTEM_ALERT_WINDOW 权限,以允许应用程序在其他应用程序的顶部显示:
```xml
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
```
完成以上步骤后,运行应用程序即可看到一个全局悬浮球。需要注意的是,在 Android 6.0 及以上版本,需要动态请求 SYSTEM_ALERT_WINDOW 权限。