精华内容
下载资源
问答
  • setontouchlistener
    万次阅读
    2019-08-21 14:32:29

    网上资料看的晕头转向?

    看这里,简单明了!
    //绑定控件
    ImageView imgfire=findViewById(R.id.imgfire);
    
    //触摸监听事件
    imgfire.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
    
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    Log.e("xxx","按下");
                    break;
                case MotionEvent.ACTION_UP:
                    Log.e("xxx","抬起");
                    break;
                case MotionEvent.ACTION_MOVE:
                    Log.e("xxx","移动");
                    break;
            }
            return true;
        }
    });
    
    更多相关内容
  • NULL 博文链接:https://trylovecatch.iteye.com/blog/1161450
  • setOnTouchListener的问题

    2021-06-05 06:11:44
    就是在按下的时候做一个5秒延迟操作,松手后判断一下,A方法是否执行过,执行过就...view.setOnTouchListener(newOnTouchListener(){/**A方法是否执行了.true:执行了,false:没执行*/booleanisAFunction=false;Handl...

    就是在按下的时候做一个5秒延迟操作,

    松手后判断一下,A方法是否执行过,执行过就不走B方法了。

    代码示例如下:View view = findViewById(R.id.view);

    view.setOnTouchListener(new OnTouchListener() {

    /**A方法是否执行了.true:执行了,false:没执行*/

    boolean isAFunction =false;

    Handler mHandler = new Handler(new Handler.Callback() {

    /**

    * A方法

    */

    @Override

    public boolean handleMessage(Message msg) {

    isAFunction = true;

    Toast.makeText(MainActivity.this, "执行了A方法", Toast.LENGTH_LONG).show();

    return false;

    }

    });

    @Override

    public boolean onTouch(View v, MotionEvent event) {

    Log.i("TAG", "==onTouch,-->"+event.getAction());

    if (event.getAction() == MotionEvent.ACTION_DOWN) {

    // 按下操作,延迟5秒发送执行A方法

    isAFunction = false;

    mHandler.sendEmptyMessageDelayed(0,1000* 5);

    } else if (event.getAction() == MotionEvent.ACTION_UP) {

    // 抬起操作

    if(isAFunction){//已执行了A方法,说明已经超过5秒了

    }else{//未执行A方法,说明没超过5秒,停止之前的A方法操作,并执行B方法

    mHandler.removeMessages(0);

    Toast.makeText(MainActivity.this, "执行了B方法", Toast.LENGTH_LONG).show();

    }

    }

    return true;

    }

    });

    展开全文
  • 1.首次尝试,重写Activity的onTouchEvent方法,结果...2.第二次尝试,对ScrollView使用setOnTouchListener 代码如下: mScrollView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTou

    1.首次尝试,重写Activity的onTouchEvent方法,结果失败了。

    可能原因:ScrollView控件监听优先级高,将touch行为阻断了。导致Activity的监听器监听不到。

    2.第二次尝试,对ScrollView使用setOnTouchListener

    代码如下:

    mScrollView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    v.getParent().requestDisallowInterceptTouchEvent(true);
                    int action = event.getAction();
                    switch (action) {
                        case (MotionEvent.ACTION_DOWN):
                            downP.x = event.getX();
                            Log.d(TAG, "Action was DOWN");
                            break;
                        case (MotionEvent.ACTION_MOVE):
                            Log.d(TAG, "Action was MOVE");
                            break;
                        case (MotionEvent.ACTION_UP):
                            Log.d(TAG, "Action was UP");
                            if(downP.x - event.getX() > 500){
                                finish();
                            }
    
                            break;
                        case (MotionEvent.ACTION_CANCEL):
                            Log.d(TAG, "Action was CANCEL");
                            break;
                        case (MotionEvent.ACTION_OUTSIDE):
                            Log.d(TAG, "Movement occurred outside bounds " +
                                    "of current screen element");
                            break;
                        default:
                            break;
                    }
                    return true;
                }
            });
    

    左滑返回成功了,但ScrollView的上下翻动功能失效了。
    可能原因:onTouch方法返回true,表示touch事件被消费掉了,其他的监听器就监听不到该事件,因此翻动功能失效。

    3.第三次尝试

    将上面的代码最后返回值改成false。表示该事件没有被消费,后面的监听器继续监听处理。而ScrollView处理完毕后会返回true,表示该事件被消费了。

    4.未找到原因的失败尝试

    mScrollView.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    v.getParent().requestDisallowInterceptTouchEvent(true);
                    int action = event.getAction();
                    switch (action) {
                        case (MotionEvent.ACTION_DOWN):
                            downP.x = event.getX();
                            Log.d(TAG, "Action was DOWN");
                            break;
                        case (MotionEvent.ACTION_MOVE):
                            Log.d(TAG, "Action was MOVE");
                            break;
                        case (MotionEvent.ACTION_UP):
                            Log.d(TAG, "Action was UP");
                            if(downP.x - event.getX() > 500){
                                finish();
                            }
    
                            break;
                        case (MotionEvent.ACTION_CANCEL):
                            Log.d(TAG, "Action was CANCEL");
                            break;
                        case (MotionEvent.ACTION_OUTSIDE):
                            Log.d(TAG, "Movement occurred outside bounds " +
                                    "of current screen element");
                            break;
                        default:
                            break;
                    }
                    return return mScrollView.onTouchEvent(event);
                }
            });
    

    尝试直接调用ScrollView的onTouchEvent方法来处理事件,结果仍然无法下翻页面,原因未知。

    展开全文
  • 安卓 setOnTouchListener 使用

    千次阅读 2021-03-25 16:03:20
    setOnTouchListener //实现方法 MotionEvent.ACTION_MOVE //滑动 MotionEvent.ACTION_DOWN 按下 MotionEvent.ACTION_UP 抬起 事件分发处理实现 根据需求进行处理 tv.setOnTouchListener(new View.OnTouchListener()...

    Android事件分发处理

    事件分发流程理论请参考 Android 的事件分发机制

    setOnTouchListener //实现方法
    MotionEvent.ACTION_MOVE //滑动
    MotionEvent.ACTION_DOWN 按下
    MotionEvent.ACTION_UP 抬起

    事件分发处理实现 根据需求进行处理

    tv.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View view, MotionEvent motionEvent) {
                   switch (motionEvent.getAction()){
                       case MotionEvent.ACTION_MOVE:
                           Toast.makeText(getActivity(), "滑动", Toast.LENGTH_SHORT).show();
                           break;
                       case MotionEvent.ACTION_UP:
                           Toast.makeText(getActivity(), "抬起", Toast.LENGTH_SHORT).show();
                           break;
                       case MotionEvent.ACTION_DOWN:
                           Toast.makeText(getActivity(), "按下", Toast.LENGTH_SHORT).show();
                           break;
                           default:break;
                   }
                    return true;
                }
            });
    
    展开全文
  • 目的是为了参照小说阅读器,点击某区域可翻页,所以就需要用到 setOnTouchListener 来监听用户触摸,主要用到两个手势: 手指触摸屏幕,手指离开屏幕。
  • 我正在创建一个登录按钮。...这个我编码是这样的: -button_login.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View arg0, MotionEvent arg1) {// TODO Aut...
  • mListView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent event) { if (!mSortable) { return false; } switch (event.getAction()) { case ...
  • 最近项目中要做一个音乐播放...按常规思路,先给整个悬浮窗setOnTouchListener,然后再给你里面的按钮setOnClickListener,点击运行,结果发现,点击事件是可以响应,拖拽也没问题,但是当手指放在ImageView上拖拽时,o
  • 文章目录方法原理思考 方法 禁止ScrollView滑动的方法。 在Android中,如果想禁止ScrollView进行滑动,那么只...scrollView.setOnTouchListener (new View.OnTouchListener() { public boolean onTouch(View v, Moti
  • 该资源主要是参考博文 http://blog.csdn.net/eastmount/article/details/40536247,主要是Android触屏setOnTouchListener实现图片缩放、移动、绘制和添加水印,有四个按钮.点击“打开”从相册中加载一张图片,点击...
  • 记录一下显现最简单的双击事件 private final int totalTime = 300; private int count = 0;...private long firstClick = 0;...private long secondClick = 0;.../** ...private final int ...view.setOnTouchListener(new View
  • 1.先说 setOnClickListener setOnTouchListener onTouchEvent 1. 1先看运行结果 : MyViewGroup-->dispatchTouchEvent-->ACTION_DOWN MyViewGroup-->onInterceptTouchEvent-->...
  • 解决 setOnItemClickListener,setOnScrollListener与setOnTouchListener事件冲突问题
  • setOntouchListener和setOnKeyListener

    万次阅读 2017-04-15 13:36:51
    在针对EditText编辑时,针对setOnTouchListener和setOnKeyListener进行一系列调试和研究,得出以下结论(此说明只针对EditText): setOnTouchListener 的onTouch方法优先级比onTouchEvent高,会先触发;若onTouch方法...
  • setOnTouchListener报警告

    万次阅读 2019-01-31 10:11:56
    Custom view `view` has setOnTouchListener called on it but does not override performClick less... (Ctrl+F1) If a View that overrides onTouchEvent or uses an OnTouchListener does not also imp...
  • setOnTouchListener中的OnTouch方法。 **注意:**该方法只要有手在屏幕上就会调用,比如按下,滑动,抬起,会时刻调用该函数的。 然后我再说一下,屏幕操作。 屏幕操作:只要你的手在屏幕上都会触发屏幕操作,比如点...
  • 因为项目需要在控件上实现长按触发事件,所以使用的是setOnTouchListener。不过需要使用onTouchEvent的小伙伴下面的代码也是可以用的,主要参考了https://bbs.csdn.net/topics/390490472中的代码,改进抬起和其他...
  • 产品的脑洞又双叒叕再一次大开,说到一个列表需要在原来上下... 列表用的RecyclerView,对于需求,只能给RecycerView设置setOnTouchListener监听,而点击和双击实现呢,肯定想到了用GestureDetector来实现,至于Ge...
  • tv_move.setOnTouchListener { v, event -> when (event.action) { MotionEvent.ACTION_DOWN -> { // 记录点下去的点(起点) startX = event.rawX.toInt() startY = event.rawY.toInt() isMove = false } ...
  • view设置setOnTouchListener时,黄牌警告

    千次阅读 2019-04-04 11:40:11
    Custom view `AutoRelativeLayout` has setOnTouchListener called on it but does not override performClick less... (Ctrl+F1) If a View that overrides onTouchEvent or uses an OnTouchListener does not also...
  • This warning comes up because Android wants to ... myButton.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { return false; } }); }
  • 在项目中有一个触摸发送语音的功能,我使用了view的setOnTouchListener(),监听手指触摸的状态进行相应操作。 mHoldToTalk.setOnTouchListener((v, event) -> { switch (event.getAction()) { case ...
  • 2、只有当setOnTouchListener中的onTouch方法返回值是false(事件未被消费,向下传递)时,onTouchEvent方法才被执行。 3、以上说的情况适用于View对象(事件会最先被最内层的View对象先响应)而不是ViewGroup...
  • 但如果在textview里面调用setOnTouchListener是会有点问题的,例如:无法监听到Motion.ACTION_UP的事件,就算在ACTION_DOWN的时候返回true也是没有用的,如果在scrollView里面setOnTouchListener的话,就能监听到...
  • 本文主要讲述使用触屏实现图片缩放、移动、添加水印等功能,所以该篇文章主要通过setOnTouchListener监听实现该功能,如何使用RelativeLayout进行布局,MotionEvent.ACTION_DOWN:表明视图已经接收一次触摸,按下时触发...
  • setOnTouchListener的onTouch方法中,移动后抬起时 event.getAction()==MotionEvent.ACTION_UP 会触发setOnClickListener事件。(event.getAction()==MotionEvent.ACTION_DOWN 返回true的则onTouch消费事件
  • setOnTouchListener

    万次阅读 2012-05-27 20:04:39
    imageButton.setOnTouchListener (imageButtonTouchListener ); private OnTouchListener   imageButtonTouchListener   = new OnTouchListener () {       public boolean onTouch(View v, ...
  • 大概意思就是点击事件会跟OnTocuch事件冲突 解决方法:在确保有执行OnTouchlistener的情况下,只需要抑制这种警告。加上@SuppressLint("ClickableViewAccessibility")就可以了。 转载于:...
  • 单点触控: MotionEvent.ACTION_DOWN:手指初次接触到屏幕时触发。 MotionEvent.ACTION_MOVE:手指在屏幕上滑动时触发,会多次触发。 MotionEvent.ACTION_UP:手指离开屏幕时触发。 ...MotionEvent.ACTION_CANCEL:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,417
精华内容 9,366
关键字:

setontouchlistener

友情链接: AVR--mcu-wiith-Proteus.zip