Android-多个手指触摸1个按钮

时间:2018-08-07 19:49:23

标签: android ontouchevent buttonclick

我想要一个可以检测多个手指的按钮。就像ı用1根手指按住,然后再用1根手指触摸该按钮一样,它必须能够检测到。

或 按下按钮后会自动释放的按钮,不管它是否实际释放。

我将onTouchevent用于鼓组项目的多个按钮。

        @Override
    public boolean onTouch(View view, MotionEvent motionEvent)
    {
        Animation zoomIn = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.zoomin);
        switch (motionEvent.getAction())
        {
            case MotionEvent.ACTION_DOWN:
                switch(view.getId())
                {

                    case R.id.BassL:
                        findViewById(R.id.bass).startAnimation(zoomIn);
                        sp.play(BassD,1.0f,1.0f,0,0,1.0f);
                        break;
                    case R.id.BassR:
                        findViewById(R.id.bass).startAnimation(zoomIn);
                        sp.play(BassD,1.0f,1.0f,0,0,1.0f);
                        break;
                    case R.id.SnareL:
                        findViewById(R.id.snare).startAnimation(zoomIn);
                        sp.play(SnareD,1.0f,1.0f,0,0,1.0f);
                        break;
                    case R.id.SnareR:
                        findViewById(R.id.snare).startAnimation(zoomIn);
                        sp.play(SnareD,1.0f,1.0f,0,0,1.0f);
                        break;
                    case R.id.OpenHihat:
                        findViewById(R.id.hihat).startAnimation(zoomIn);
                        sp.stop(OpenH);
                        sp.play(OpenH,1.0f,1.0f,0,0,1.0f);
                        break;
                    case R.id.CloseHihat:
                        findViewById(R.id.hihat).startAnimation(zoomIn);

                        sp.play(CloseH,1.0f,1.0f,0,0,1.0f);
                        break;
                    case R.id.RideSurface:
                        findViewById(R.id.ride).startAnimation(zoomIn);
                        sp.stop(RideS);
                        sp.play(RideS,1.0f,1.0f,0,0,1.0f);
                        break;
                    case R.id.RideTop:
                        findViewById(R.id.ride).startAnimation(zoomIn);
                        sp.play(RideT,1.0f,1.0f,0,0,1.0f);
                        break;
                }



        }

        return true;
    }
}

1 个答案:

答案 0 :(得分:0)

您可以检查与刚收到的MotionEvent相关的指针ID。

有关更多信息,请参阅文档: https://developer.android.com/reference/android/view/MotionEvent.html#getPointerId(int)

相关问题