java – 检测滑动,单击,按住一个View Android

java – 检测滑动,单击,按住一个View Android,第1张

概述我有一个 ImageView填充我的整个活动.我需要能够检测到4个触摸事件: >保持(超过400毫秒) >点击 >向左滑动 >向右滑动 目前我可以使用以下代码检测前两个: imageView.setOnTouchListener(new View.OnTouchListener() { private Timer timerr = new Timer(); private lon 我有一个 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可用,但我不知道如何适应这种情况.

解决方法 手势探测器是要走的路.

或者,

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;        }
总结

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1148235.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存