如何在给定时间范围内检测拍子?

问题描述 投票:0回答:1

我的布局上有一个2x2的网格,我需要每秒检测出块中的触摸。

我该怎么办?

相对较新的线程处理。

感谢您的任何帮助,谢谢。

android multithreading touch
1个回答
0
投票

我建议使用Rxjava。在应用程序级别的build.gradle文件中添加以下依赖项

    implementation "io.reactivex.rxjava2:rxjava:2.1.9"
    implementation "io.reactivex.rxjava2:rxandroid:2.0.1"
    implementation "com.jakewharton.rxbinding2:rxbinding:2.0.0"

在您的班级中添加以下代码。

 RxView.clicks(my_grid_layout)
                .map(new Function<Object, Integer>() {
                    @Override
                    public Integer apply(Object o) throws Exception {
                        return 1;
                    }
                })
                .buffer(1, TimeUnit.SECONDS)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeWith(new Observer<List<Integer>>() {
                    @Override
                    public void onSubscribe(Disposable d) {
                    }

                    @Override
                    public void onNext(List<Integer> integers) {
                        Log.e(TAG, "onNext: " + integers.size() + " taps received!");

                       int number_of_clicks= integers.size();

                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e(TAG, "onError: " + e.getMessage());
                    }

                    @Override
                    public void onComplete() {
                        Log.e(TAG, "onComplete");
                    }
                });
© www.soinside.com 2019 - 2024. All rights reserved.