Android写一个悬浮窗
时间: 2023-11-10 18:43:46 浏览: 44
你可以使用 Android 的 WindowManager 类来创建一个悬浮窗。下面是一个简单的示例代码:
```java
public class FloatingWindowService extends Service {
private WindowManager windowManager;
private View floatingView;
public FloatingWindowService() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
// 创建悬浮窗
floatingView = LayoutInflater.from(this).inflate(R.layout.floating_window_layout, null);
// 设置悬浮窗的参数
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT
);
// 获取 WindowManager 实例并添加悬浮窗
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager.addView(floatingView, params);
}
@Override
public void onDestroy() {
super.onDestroy();
// 移除悬浮窗
if (floatingView != null) {
windowManager.removeView(floatingView);
}
}
}
```
在上面的代码中,你需要创建一个布局文件 `floating_window_layout.xml`,用于定义悬浮窗的界面。然后,在 AndroidManifest.xml 文件中注册该服务:
```xml
<service
android:name=".FloatingWindowService"
android:enabled="true"
android:exported="true" />
```
接下来,你可以通过启动该服务来显示悬浮窗:
```java
startService(new Intent(this, FloatingWindowService.class));
```
请注意,为了在 Android 8.0 及以上版本上显示悬浮窗,你需要在应用的清单文件中申请 `SYSTEM_ALERT_WINDOW` 权限:
```xml
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
```
同时,还需要在应用的设置中手动授予该权限。希望这可以帮助到你!