在Android应用程序中移动手指按钮

时间:2013-10-18 21:52:11

标签: android touch ontouchevent ontouchlistener

当用户触摸按钮时,应播放声音。有很多按钮,每个按钮都有不同的声音。当用户在所有按钮上移动手指时,应播放所有声音。像钢琴应用程序的东西。我该怎么做?我尝试使用ontouch lister,但它不起作用。

1 个答案:

答案 0 :(得分:1)

在onTouch方法中,您应该捕获从用户TouchDown开始的不同事件,然后是TouchMove,最后是TouchUp。查找所有x,y坐标是否在您的按钮区域,如果是,则播放声音。

确保当前按钮选择与前一个按钮选择不同,否则,如果您的手指在同一个按钮上移动,则会触发相同按钮的另一个事件,并且您在移动手指时会发出大量声音:

psudo代码:

@Override
public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub

    switch(event.getAction())
    {

    case MotionEvent.ACTION_UP:     // stop here
        break;
    case MotionEvent.ACTION_DOWN:   // start here
        break;
    case MotionEvent.ACTION_MOVE:   
            // See if new x y co-ordinates in your buttonRect area 
            // RectF [] buttonRect = new buttonRect[10] ;
            for(int i = 0; i < 10; i++)
            {
                if( buttonRect[i].contains(event.getX(), event.getY()))
                {
                    // if it's a new button found than previously touch, play a sound

                    // store the button number that's been tapped by user

                }
            }


        break;
    }
}

希望它有所帮助。