Android firing onTouch event for multiple ImageViews

后端 未结 2 538
借酒劲吻你
借酒劲吻你 2020-12-20 07:25

I have several ImageViews, and I want the onTouch event to fire for each of them when I drag my finger across multiple images. At present the onTouch event is only firing on

相关标签:
2条回答
  • 2020-12-20 07:44

    I think you need to use move event rather than touch event and compare getX and getY with the location of your views.

         @Override
        public boolean onTouchEvent(MotionEvent ev) {
    
            final int action = ev.getAction();
    
            switch (action) {
    
                // MotionEvent class constant signifying a finger-down event
    
                case MotionEvent.ACTION_DOWN: {
                    break;
                }
    
                // MotionEvent class constant signifying a finger-drag event  
    
                case MotionEvent.ACTION_MOVE: {
    
                        X = ev.getX();
                        Y = ev.getY();
                        //compare here using a loop of your views
                        break;
    
                }
    
                // MotionEvent class constant signifying a finger-up event
    
                case MotionEvent.ACTION_UP:
    
                    break;
    
            }
            return true;
        }
    
    0 讨论(0)
  • 2020-12-20 07:47

    Yes, I had the same problem. The answer was to create a touch listener for the layout I embed my ImageViews in and then to calculate the X, Y position to know above which of my View am I. OnTouchListener is called only for the view it is connected to. I mean if it is called for an ImageView it won't fire until you start your motion onto that ImageView, as far as I know.

    0 讨论(0)
提交回复
热议问题