Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java – 检测滑动,单击,按住一个View Android大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 ImageView填充我的整个活动.我需要能够检测到4个触摸事件:

>保持(超过400毫秒)
>点击
>向左滑动
>向右滑动

目前我可以使用以下代码检测前两个:

imageView.setOnTouchListener(new View.onTouchListener() {

    private Timer timerr = new Timer();
    private long LONG_PRESS_TIMEOUT = 400; // TODO: your timeout here
    private Boolean wasLong = false;

    @Override
    public Boolean onTouch(View v,MotionEvent event) {
      Log.d(getClass().getName(),"touch event: " + event.toString());

      if (event.getAction() == MotionEvent.ACTION_DOWN) {
       // HOLD DETECTED
       timerr.schedule(new TimerTask() {
          @Override
          public void run() {
            SlideShow.this.runOnUiThread(new Runnable() {
              @Override
              public void run() {

              },LONG_PRESS_TIMEOUT);
             return true;
            }

            if (event.getAction() == MotionEvent.ACTION_Up) {
             if (!isPaused && !wasLong) {
              // CLICK DETECTED
              timerr.cancel();
              timerr = new Timer();
              if (!wasLong) {

               return false;
              }
             });

现在我正在尝试使用此问题中的代码来实现向右滑动和向左滑动操作. Android Swipe on List这个问题在于它适用于listview,您可以在其中为整个列表视图实现onTouchListener,并为列表项实现单独的onItemClickListener.然只有一个Listener可用,但我不知道如何适应这种情况.

@H_696_13@

解决方法

手势探测器是要走的路.

或者,

image.setOnTouchListener(new View.onTouchListener() {
        @Override
        public Boolean onTouch(View v,MotionEvent event) {

            switch (event.getAction()) {

                case MotionEvent.ACTION_DOWN:
                    x1 = event.getX();
                    y1 = event.getY();
                    t1 = System.currentTimeMillis();
                    return true;
                case MotionEvent.ACTION_UP:
                    x2 = event.getX();
                    y2 = event.getY();
                    t2 = System.currentTimeMillis();

                    if (x1 == x2 && y1 == y2 && (t2 - t1) < CLICK_DURATION) {
                        Toast.makeText(getActivity(),"Click",Toast.LENGTH_SHORT).show();
                    } else if ((t2 - t1) >= CLICK_DURATION) {
                        Toast.makeText(getActivity(),"Long click",Toast.LENGTH_SHORT).show();
                    } else if (x1 > x2) {
                        Toast.makeText(getActivity(),"Left swipe",Toast.LENGTH_SHORT).show();
                    } else if (x2 > x1) {
                        Toast.makeText(getActivity(),"Right swipe",Toast.LENGTH_SHORT).show();
                    } 


                    return true;
            }

            return false;
        }
@H_696_13@ @H_696_13@

大佬总结

以上是大佬教程为你收集整理的java – 检测滑动,单击,按住一个View Android全部内容,希望文章能够帮你解决java – 检测滑动,单击,按住一个View Android所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。