如何实现Android悬浮窗小窗播放
一、整体流程
flowchart TD
A(准备工作) --> B(创建悬浮窗)
B --> C(设置悬浮窗参数)
C --> D(悬浮窗操作)
二、具体步骤
1. 准备工作
在AndroidManifest.xml中添加权限:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
2. 创建悬浮窗
在Activity中创建悬浮窗:
// 创建悬浮窗
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
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
);
View view = LayoutInflater.from(this).inflate(R.layout.layout_floating_window, null);
windowManager.addView(view, params);
3. 设置悬浮窗参数
设置悬浮窗的位置、大小等参数:
// 设置悬浮窗位置
params.x = 100;
params.y = 100;
// 设置悬浮窗大小
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
// 设置悬浮窗透明度
params.alpha = 0.8f;
4. 悬浮窗操作
实现悬浮窗的交互操作,比如拖动、点击等:
// 设置悬浮窗可拖动
view.setOnTouchListener(new View.OnTouchListener() {
private int lastX, lastY;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
int dx = (int) event.getRawX() - lastX;
int dy = (int) event.getRawY() - lastY;
params.x += dx;
params.y += dy;
windowManager.updateViewLayout(view, params);
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
break;
}
return false;
}
});
三、总结
通过以上步骤,你可以实现Android悬浮窗小窗播放的功能,希望对你有所帮助。
journey
title 实现Android悬浮窗小窗播放
section 准备工作
section 创建悬浮窗
section 设置悬浮窗参数
section 悬浮窗操作