android 实现漂浮窗提示框
时间: 2023-11-27 11:03:28 浏览: 46
Android 实现漂浮窗提示框的方法如下:
1. 在 AndroidManifest.xml 文件中添加 SYSTEM_ALERT_WINDOW 权限:
```xml
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
```
2. 创建一个 Service 类,用于显示漂浮窗提示框:
```java
public class FloatingWindowService extends Service {
private WindowManager mWindowManager;
private View mFloatingView;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
// 创建一个 WindowManager 对象
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
// 创建一个 View 对象,作为漂浮窗提示框的界面
mFloatingView = LayoutInflater.from(this).inflate(R.layout.floating_window, null);
// 设置漂浮窗提示框的位置和大小
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.START;
params.x = 0;
params.y = 100;
// 将漂浮窗提示框添加到 WindowManager 中
mWindowManager.addView(mFloatingView, params);
}
@Override
public void onDestroy() {
super.onDestroy();
// 在 Service 销毁时,移除漂浮窗提示框
if (mFloatingView != null) {
mWindowManager.removeView(mFloatingView);
}
}
}
```
3. 在布局文件中定义漂浮窗提示框的界面,例如:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_notification" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="这是一条漂浮窗提示框"
android:textColor="#FFFFFF" />
</LinearLayout>
```
4. 在 Activity 中启动 FloatingWindowService:
```java
Intent intent = new Intent(this, FloatingWindowService.class);
startService(intent);
```
这样就可以在 Android 应用中实现漂浮窗提示框了。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)