在android中,如何使用另一个事件监听器(而不是onTouchListener)获取运动事件?

在android中,如何使用另一个事件监听器(而不是onTouchListener)获取运动事件?,android,android-studio,Android,Android Studio,我根据事件在按钮上定义了一些动画:如果用户按下按钮,文本和背景颜色会发生变化,当用户释放按钮时,属性会发生变化。为此,我使用了Touch Listener,它工作得非常好,但有时当用户滚动屏幕时,按钮上定义的动画就会出现。因此,我要求另一个监听器或方法来保存我的动画,并防止用户在滚动时意外触摸动画。我以为有新闻发布会但是。。。以下是其中一个按钮的代码: Button one=findViewById(R.id.button_one); one.setOnTouchListener(new Vie

我根据事件在按钮上定义了一些动画:如果用户按下按钮,文本和背景颜色会发生变化,当用户释放按钮时,属性会发生变化。为此,我使用了Touch Listener,它工作得非常好,但有时当用户滚动屏幕时,按钮上定义的动画就会出现。因此,我要求另一个监听器或方法来保存我的动画,并防止用户在滚动时意外触摸动画。我以为有新闻发布会但是。。。以下是其中一个按钮的代码:

Button one=findViewById(R.id.button_one);
one.setOnTouchListener(new View.OnTouchListener() {

        @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
        @Override
        public boolean onTouch(View view, MotionEvent event) {

            if(event.getAction() == MotionEvent.ACTION_DOWN){
                if(Build.VERSION_CODES.LOLLIPOP<=Integer.valueOf(android.os.Build.VERSION.SDK)){
                    one.setBackgroundTintList(ContextCompat.getColorStateList(getApplicationContext(), R.color.teal_200));
                }
                one.setBackgroundColor(Color.parseColor("#515de1"));
                one.setTextColor(Color.WHITE);

            }else if(event.getAction() == MotionEvent.ACTION_UP){
                if(Build.VERSION_CODES.LOLLIPOP<=Integer.valueOf(android.os.Build.VERSION.SDK)){
                    one.setBackgroundTintList(ContextCompat.getColorStateList(getApplicationContext(), R.color.white));
                }
                one.setBackgroundColor(Color.WHITE);
                one.setTextColor(Color.parseColor("#515de1"));
            }

            return false;
        }

    });
Button one=findviewbyd(R.id.Button\u one);
一个.setOnTouchListener(新视图.OnTouchListener(){
@RequiresApi(api=Build.VERSION\u code.LOLLIPOP)
@凌驾
公共布尔onTouch(视图、运动事件){
if(event.getAction()==MotionEvent.ACTION\u向下){
如果(Build.VERSION\u CODES.LOLLIPOP