Java 在android中创建辅助触摸

Java 在android中创建辅助触摸,java,android,touch,Java,Android,Touch,嗨,你能帮我创建辅助浮动按钮吗 项目在这里:但它是旧的,如果我尝试它不工作 我没有写任何代码,因为我想重新开始 舱单 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@

嗨,你能帮我创建辅助浮动按钮吗

项目在这里:但它是旧的,如果我尝试它不工作

我没有写任何代码,因为我想重新开始 舱单

<uses-permission
    android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <service
        android:name=".FloatingWidgetService"
        android:enabled="true"
        android:exported="false" />
</application>
我的floatingwidgetservice,在开始时,我在gradle“implementation'com.github.andremion:counterLab:1.0.1”中为counterLab添加了这个

public class FloatingWidgetService extends Service {
private WindowManager mWindowManager;
private View mOverlayView;
CounterFab counterFab;
@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}
@Override
public void onCreate() {
    super.onCreate();
    setTheme(R.style.AppTheme);
    mOverlayView = LayoutInflater.from(this).inflate(R.layout.overlay_layout, null);
    final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_PHONE,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
    params.gravity = Gravity.TOP | Gravity.LEFT;        //Initially view will be added to top-left corner
    params.x = 0;
    params.y = 100;
    mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
    mWindowManager.addView(mOverlayView, params);
    counterFab = (CounterFab) mOverlayView.findViewById(R.id.fabHead);
    counterFab.setCount(1);
    counterFab.setOnTouchListener(new View.OnTouchListener() {
        private int initialX;
        private int initialY;
        private float initialTouchX;
        private float initialTouchY;
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    initialX = params.x;
                    initialY = params.y;
                    initialTouchX = event.getRawX();
                    initialTouchY = event.getRawY();
                    return true;
                case MotionEvent.ACTION_UP:
                    return true;
                case MotionEvent.ACTION_MOVE:
                    float Xdiff = Math.round(event.getRawX() - initialTouchX);
                    float Ydiff = Math.round(event.getRawY() - initialTouchY);
                    params.x = initialX + (int) Xdiff;
                    params.y = initialY + (int) Ydiff;
                    mWindowManager.updateViewLayout(mOverlayView, params);
                    return true;
            }
            return false;
        }

请以任何一种方式发布您的代码,这个社区首先需要您的一点努力,因此,如果我们可以看到一些代码,以了解您尝试了什么以及您正在努力解决的问题,这会有所帮助:)欢迎使用so。张贴什么你尝试了请。我只是张贴它,但它只是刚刚开始,它不工作
public class FloatingWidgetService extends Service {
private WindowManager mWindowManager;
private View mOverlayView;
CounterFab counterFab;
@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}
@Override
public void onCreate() {
    super.onCreate();
    setTheme(R.style.AppTheme);
    mOverlayView = LayoutInflater.from(this).inflate(R.layout.overlay_layout, null);
    final WindowManager.LayoutParams params = new WindowManager.LayoutParams(
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.WRAP_CONTENT,
            WindowManager.LayoutParams.TYPE_PHONE,
            WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
            PixelFormat.TRANSLUCENT);
    params.gravity = Gravity.TOP | Gravity.LEFT;        //Initially view will be added to top-left corner
    params.x = 0;
    params.y = 100;
    mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
    mWindowManager.addView(mOverlayView, params);
    counterFab = (CounterFab) mOverlayView.findViewById(R.id.fabHead);
    counterFab.setCount(1);
    counterFab.setOnTouchListener(new View.OnTouchListener() {
        private int initialX;
        private int initialY;
        private float initialTouchX;
        private float initialTouchY;
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    initialX = params.x;
                    initialY = params.y;
                    initialTouchX = event.getRawX();
                    initialTouchY = event.getRawY();
                    return true;
                case MotionEvent.ACTION_UP:
                    return true;
                case MotionEvent.ACTION_MOVE:
                    float Xdiff = Math.round(event.getRawX() - initialTouchX);
                    float Ydiff = Math.round(event.getRawY() - initialTouchY);
                    params.x = initialX + (int) Xdiff;
                    params.y = initialY + (int) Ydiff;
                    mWindowManager.updateViewLayout(mOverlayView, params);
                    return true;
            }
            return false;
        }