Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检测是否在屏幕的左侧或右侧执行运动事件手势?_Java_Android - Fatal编程技术网

Java 如何检测是否在屏幕的左侧或右侧执行运动事件手势?

Java 如何检测是否在屏幕的左侧或右侧执行运动事件手势?,java,android,Java,Android,与MX播放器一样,左手垂直滑动手势控制亮度,右手垂直手势控制音量,我需要在我的应用程序中应用这一概念。那我该怎么做呢?你可以像这样听触摸事件: public class MainActivity extends Activity { float x1 = 0; float y1 = 0; float x2 ; float y2 ; ... @Override public boolean onTouchEvent(

与MX播放器一样,左手垂直滑动手势控制亮度,右手垂直手势控制音量,我需要在我的应用程序中应用这一概念。那我该怎么做呢?

你可以像这样听触摸事件:

public class MainActivity extends Activity {
       float x1 = 0;
       float y1 = 0;
       float x2 ;
       float y2 ;
    ...

    @Override
    public boolean onTouchEvent(MotionEvent event){
    int action = MotionEventCompat.getActionMasked(event);

            switch(action) {
                case (MotionEvent.ACTION_DOWN) :
                    x1 = event.getX();
                    y1 = event.getY();
                    return true;
                case (MotionEvent.ACTION_UP) :
                    x2 = event.getX();
                    y2 = event.getY();

                    //if left to right sweep event on screen
                    if (x1 < x2)
                    {
                        Toast.makeText(this, "Left to Right Swap Performed", Toast.LENGTH_LONG).show();
                    }

                    // if right to left sweep event on screen
                    if (x1 > x2)
                    {
                        Toast.makeText(this, "Right to Left Swap Performed", Toast.LENGTH_LONG).show();
                    }

                    // if UP to Down sweep event on screen
                    if (y1 < y2)
                    {
                        Toast.makeText(this, "UP to Down Swap Performed", Toast.LENGTH_LONG).show();
                    }

                    //if Down to UP sweep event on screen
                    if (y1 > y2)
                    {
                        Toast.makeText(this, "Down to UP Swap Performed", Toast.LENGTH_LONG).show();
                    }
                    return true;
公共类MainActivity扩展活动{
浮点x1=0;
浮动y1=0;
浮动x2;
浮动y2;
...
@凌驾
公共布尔onTouchEvent(运动事件){
int action=MotionEventCompat.getActionMasked(事件);
开关(动作){
案例(MotionEvent.ACTION\u DOWN):
x1=event.getX();
y1=event.getY();
返回true;
案例(MotionEvent.ACTION\u UP):
x2=event.getX();
y2=event.getY();
//如果屏幕上出现从左向右扫描事件
if(x1x2)
{
Toast.makeText(这是“执行了从右到左的交换”,Toast.LENGTH_LONG.show();
}
//如果屏幕上出现向上向下扫描事件
if(y1y2)
{
Toast.makeText(这是“执行了从下到上的交换”,Toast.LENGTH_LONG.show();
}
返回true;

MotionEvents具有x坐标和y坐标。使用简单的数学方法来检测MotionEvent的触发位置。