EasyFloat 是一个用于在 Android 上创建悬浮窗的库。要处理悬浮窗的触摸事件,你需要重写 onInterceptTouchEvent
和 onTouchEvent
方法。以下是一个简单的示例:
- 首先,在你的项目中添加 EasyFloat 的依赖:
dependencies { implementation 'com.github.shadowsocks:easyfloat:2.1.0' }
- 创建一个悬浮窗类,继承自
FloatWindow
类,并重写onInterceptTouchEvent
和onTouchEvent
方法:
import android.content.Context; import android.view.MotionEvent; import com.github.shadowsocks.easyfloat.EasyFloat; import com.github.shadowsocks.easyfloat.widget.FloatView; public class MyFloatWindow extends FloatWindow { public MyFloatWindow(Context context) { super(context); // 初始化悬浮窗布局和其他设置 } @Override public boolean onInterceptTouchEvent(MotionEvent event) { // 如果你想拦截触摸事件,返回 true // 如果你想让悬浮窗内部的视图处理触摸事件,返回 false return false; } @Override public boolean onTouchEvent(MotionEvent event) { // 在这里处理触摸事件 // 根据 event.getAction() 和其他属性来判断如何处理触摸事件 // 返回 true 表示已经处理了这个事件,不需要继续传递 // 返回 false 表示没有处理这个事件,需要继续传递 return false; } }
- 在你的 Activity 或 Fragment 中创建一个
MyFloatWindow
实例,并将其添加到窗口管理器:
import android.app.Activity; import android.os.Bundle; import com.github.shadowsocks.easyfloat.EasyFloat; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MyFloatWindow myFloatWindow = new MyFloatWindow(this); // 设置悬浮窗的布局和其他属性 EasyFloat.getInstance().addView(myFloatWindow, EasyFloat.FLOAT_WINDOW_TYPE_STICKY); } }
现在,你可以在 MyFloatWindow
类的 onTouchEvent
方法中处理触摸事件。根据你的需求,你可以拦截触摸事件或者让悬浮窗内部的视图处理触摸事件。