阅读量:10
要在Android应用内实现全局悬浮窗,你可以使用系统提供的 WindowManager 来添加一个悬浮窗口。以下是实现该功能的基本步骤:
- 在 AndroidManifest.xml 文件中添加权限声明:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
- 创建一个 Service 类来管理悬浮窗口的显示和隐藏:
public class FloatingWidgetService extends Service { private WindowManager windowManager; private View floatingWidget; @Override public IBinder onBind(Intent intent) { return null; } @Override public void onCreate() { super.onCreate(); windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); floatingWidget = LayoutInflater.from(this).inflate(R.layout.floating_widget, 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.addView(floatingWidget, params); } @Override public void onDestroy() { super.onDestroy(); if (floatingWidget != null) { windowManager.removeView(floatingWidget); } } }
在 res/layout 目录下创建一个布局文件 floating_widget.xml,用于定义悬浮窗口的布局。
在 MainActivity 或其他需要显示悬浮窗口的地方启动 FloatingWidgetService:
startService(new Intent(this, FloatingWidgetService.class));
这样就可以在应用内实现全局悬浮窗口了。当应用进入后台或者被销毁时,记得停止 FloatingWidgetService 以及移除悬浮窗口。