Java 手机屏幕上的双击手势

Java 手机屏幕上的双击手势,java,android,gesture-recognition,Java,Android,Gesture Recognition,我想知道我们是否可以在android中识别屏幕上的双击动作 我找到了很多与双击手势相关的代码,但没有找到用于屏幕的代码。请让我知道它是否存在于API中 这就像我们点击手机屏幕,它会像在windows phone中一样启动操作。当我们双击手机屏幕时,它会从稳定模式进入on模式 我用这个代码做双击手势 package a.b.c; import android.app.Activity; import android.os.Bundle; import android.view.GestureDe

我想知道我们是否可以在android中识别屏幕上的双击动作

我找到了很多与双击手势相关的代码,但没有找到用于屏幕的代码。请让我知道它是否存在于API中

这就像我们点击手机屏幕,它会像在windows phone中一样启动操作。当我们双击手机屏幕时,它会从稳定模式进入on模式

我用这个代码做双击手势

package a.b.c;

import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector.OnDoubleTapListener;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.widget.Toast;



public class SampleActivity extends Activity implements OnDoubleTapListener,OnGestureListener
{
        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    public boolean onDoubleTap(MotionEvent e) {
        if(e.getAction()==1)
        {
        Toast.makeText(getBaseContext(), "onDoubleTap", Toast.LENGTH_LONG).show();
        }
        return true;
    }

    @Override
    public boolean onDoubleTapEvent(MotionEvent e) {
        if(e.getAction()==1)
        {
        Toast.makeText(getBaseContext(), "onDoubleTapEvent", Toast.LENGTH_LONG).show();
        }
        return true;
    }

    @Override
    public boolean onSingleTapConfirmed(MotionEvent e) {
        if(e.getAction()==1)
        {
        Toast.makeText(getBaseContext(), "onSingleTapConfirmed", Toast.LENGTH_LONG).show();
        }
        return true;
    }

将以下代码添加到您的活动中

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.OnDoubleTapListener;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.widget.LinearLayout;
import android.widget.TextView;

public class Main extends Activity implements OnGestureListener, OnDoubleTapListener
{    
    private LinearLayout main;    
    private TextView viewA;

    private GestureDetector gestureScanner;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        gestureScanner = new GestureDetector(this);

        main = new LinearLayout(this);
        main.setBackgroundColor(Color.GRAY);
        main.setLayoutParams(new LinearLayout.LayoutParams(320,480));

        viewA = new TextView(this);
        viewA.setBackgroundColor(Color.YELLOW);
        viewA.setTextColor(Color.BLACK);
        viewA.setTextSize(16);
        viewA.setLayoutParams(new LinearLayout.LayoutParams(320,80));
        main.addView(viewA);

        setContentView(main);
    }

    @Override
    public boolean onTouchEvent(MotionEvent me)
    {
     return gestureScanner.onTouchEvent(me);
    }

    @Override
    public boolean onDown(MotionEvent e)
    {
     viewA.setText("-" + "DOWN" + "-");
     return true;
    }

    @Override
    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
    {
     viewA.setText("-" + "FLING" + "-");
     return true;
    }

    @Override
    public void onLongPress(MotionEvent e)
    {
     viewA.setText("-" + "LONG PRESS" + "-");
    }

    @Override
    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
    {
     viewA.setText("-" + "SCROLL" + "-");
     return true;
    }

    @Override
    public void onShowPress(MotionEvent e)
    {
     viewA.setText("-" + "SHOW PRESS" + "-");
    }    

    @Override
    public boolean onSingleTapUp(MotionEvent e)    
    {
     viewA.setText("-" + "SINGLE TAP UP" + "-");
     return true;
    }

 @Override
 public boolean onDoubleTap(MotionEvent e) {
  viewA.setText("-" + "DOUBLE TAP" + "-");
  return true;
 }

 @Override
 public boolean onDoubleTapEvent(MotionEvent e) {
  viewA.setText("-" + "DOUBLE TAP EVENT" + "-");
  return true;
 }

 @Override
 public boolean onSingleTapConfirmed(MotionEvent e) {
  viewA.setText("-" + "SINGLE TAP CONFORMED" + "-");
  return true;
 }
}

我希望它能帮助您:)

老板,它不工作,我想要的是用户双击屏幕,然后我会在屏幕上执行此操作。!!!:)如果我只想要双击的东西而不担心其他的呢?嗨,你解决了这个问题吗?如果是,请您帮助我,我的要求是相同的。是的,您可以使用第三方应用程序/启动器进行相同的操作。!!谢谢