Android连续点击事件的实现

xiaoxiao2021-02-28  84

Android的连续点击事件的判断和响应。主要原理就是利用 有效连续点击总时间 =  连续点击次数 x 有效双击的最长时间间隔 / 2 ,利用数组拷贝左移来记录点击当时的系统时间,只要当前系统时间减去脚标为0的数组记录时间小于等于有效连续点击总时间,就算完成连续多次点击事件。

public class ViewHelper { private WeakReference<View> weakReference; public ViewHelper(View view){ weakReference = new WeakReference<>(view); } public void multiClick(int clickCount, final IActionCallback callback){ View view = weakReference.get(); if (view == null) return; final long mHints[] = new long[clickCount]; // 连续点击总用时 = 连续点击次数 * 有效双击最长时间间隔/2 final long totalTime = clickCount * ViewConfiguration.getDoubleTapTimeout() / 2; view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //数组向左边移动一位 System.arraycopy(mHints, 1, mHints, 0, mHints.length - 1); mHints[mHints.length-1] = SystemClock.uptimeMillis(); if (SystemClock.uptimeMillis() - mHints[0] <= totalTime){ callback.onComplete(); } } }); } public interface IActionCallback{ void onComplete(); } }

转载请注明原文地址: https://www.6miu.com/read-29440.html

最新回复(0)