Android 如何写一个应用点击应用为一个悬浮窗
时间: 2024-06-10 08:09:42 浏览: 156
要将一个应用点击变成一个悬浮窗,需要使用 Android 系统提供的 WindowManager 类和 View 类。
下面是一个示例代码:
```java
public class MainActivity extends AppCompatActivity {
private WindowManager mWindowManager;
private View mFloatingView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建一个悬浮窗
mFloatingView = LayoutInflater.from(this).inflate(R.layout.floating_view, 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
);
params.gravity = Gravity.TOP | Gravity.START;
params.x = 0;
params.y = 100;
// 将悬浮窗添加到窗口中
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mWindowManager.addView(mFloatingView, params);
// 设置悬浮窗的点击事件
mFloatingView.findViewById(R.id.btn_close).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 关闭悬浮窗
mWindowManager.removeView(mFloatingView);
}
});
}
}
```
在上面的代码中,首先我们创建了一个悬浮窗,并设置了它的初始位置。然后将悬浮窗添加到窗口中。最后设置了悬浮窗的点击事件,当用户点击关闭按钮时,关闭悬浮窗。
需要注意的是,要将一个应用点击变成一个悬浮窗,需要在 AndroidManifest.xml 文件中添加 SYSTEM_ALERT_WINDOW 权限:
```xml
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
```
同时,需要在 Android 6.0 及以上版本中动态申请该权限。
以上就是将一个应用点击变成一个悬浮窗的基本步骤。如果需要更加复杂的悬浮窗效果,可以根据需要自行扩展。
阅读全文