GestureDetector简单应用实现长按和双击
16lz
2021-01-26
要实现 Android 双击 功能,我们可通过记录两次点击时间,用两次点击时间间隔来判断实现双击功能。也可以通过手势 GestureDectector 的监听 实现双击功能。
如下代码所示,创建 GestureDetector 同时注册 SimpleOnGestureListener 手势监听,实现长按(onLongPress)和双击(onDoubleTap)回调方法。为 view 设置触摸监听 OnTouchListener,在onTouch 方法中调用gestureDetector.onTouchEvent(event)
,检测手势。逻辑处理实现长按后再双击切换网络环境的功能。
/** * 环境切换逻辑。长按后再双击,唤出环境切换菜单。 * @param activity_login_logo 登陆logo */ @SuppressLint("ClickableViewAccessibility") private void envirSwitchLogic(final ImageView activity_login_logo) { final GestureDetector gestureDetector = new GestureDetector(LoginActivity.this, new GestureDetector.SimpleOnGestureListener() { int checkedItem = 2; @Override public void onLongPress(MotionEvent e) { super.onLongPress(e); activity_login_logo.setTag("longClicked"); } @Override public boolean onDoubleTap(MotionEvent e) { if ("longClicked".equals(activity_login_logo.getTag())) { for (int i = 0; i < UrlConfig.ENVIR_ARR.length; i++) { if (UrlConfig.ENVIR_ARR[i] == UrlConfig.ENVIR) { checkedItem = i; break; } } //长按后再双击,唤出环境切换菜单 new AlertDialog.Builder(LoginActivity.this) .setTitle("环境切换") .setSingleChoiceItems( new String[]{"测试环境(beta)", "Staging环境(staging)", "正式环境(release)", "本地环境(local)"}, checkedItem, new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { checkedItem = which; int envir = UrlConfig.ENVIR_ARR[which]; UrlConfig.switchEnvir(envir); xml.setInt(AppConstants.SP.ENVIR_CODE, envir);//保存本次操作,再次进入应用,在Application中取出。 dialog.dismiss(); } } ).show(); activity_login_logo.setTag(null); } return false; } }); activity_login_logo.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { gestureDetector.onTouchEvent(event); return true; } }); }
更多相关文章
- Android(安卓)| 如何给Fragment里的button添加监听事件
- (转载)Android平台,jni调用原始C运态库技术总揽
- 【Android(安卓)UI】案例03滑动切换效果的实现(ViewPager)
- Android应用集成开发环境,强烈推荐使用
- Android(安卓)对手机网络的检测和监听
- Android的ListView简单使用的实例(附Demo)
- Android(安卓)PopupWindow 仿微信弹出效果
- Android(安卓)解决输入法遮挡布局控件的问题
- [置顶] Android(安卓)UI设计之RecyclerView