인터넷을 참조하면서 짜봤는데 더블탭이 먹질 않습니다.

한번만 봐주시면 감사하겠습니다.



package com.example.MM;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.support.v4.view.GestureDetectorCompat;
import android.view.GestureDetector;
import android.view.GestureDetector.OnDoubleTapListener;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;


 public  class Actimage2 extends Activity{
  private GestureDetector mDoubleTapGesture;
  protected void onCreate(Bundle savedInBundle) {
   super.onCreate(savedInBundle);
   setContentView(R.layout.drawing);
   mDoubleTapGesture = new GestureDetector(this, mNullListener);
   mDoubleTapGesture.setOnDoubleTapListener(mDoubleTapListener);
   setContentView(R.layout.drawing);
   MyPaint mp = new MyPaint(this);
   RelativeLayout relative = (RelativeLayout) findViewById(R.id.subLayout);
   relative.addView(mp);
   
   
  }
  
  
  
  
  @Override
   public boolean onTouchEvent(MotionEvent event) {
    if (mDoubleTapGesture != null) {
     return mDoubleTapGesture.onTouchEvent(event);
    } else {
     return super.onTouchEvent(event);
    }
   }
  
  
  
  
  
  
  
  
  
  private OnGestureListener mNullListener = new OnGestureListener(){

   @Override
   public boolean onDown(MotionEvent e) {
    // TODO Auto-generated method stub
    return false;
   }

   @Override
   public void onShowPress(MotionEvent e) {
    // TODO Auto-generated method stub
    
   }

   @Override
   public boolean onSingleTapUp(MotionEvent e) {
    // TODO Auto-generated method stub
    return false;
   }

   @Override
   public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
     float distanceY) {
    // TODO Auto-generated method stub
    return false;
   }

   @Override
   public void onLongPress(MotionEvent e) {
    // TODO Auto-generated method stub
    
   }

   @Override
   public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
     float velocityY) {
    // TODO Auto-generated method stub
    return false;
   }
   };


  private OnDoubleTapListener mDoubleTapListener = new OnDoubleTapListener(){

   @Override
   public boolean onSingleTapConfirmed(MotionEvent e) {
    // TODO Auto-generated method stub
    return false;
   }

   @Override
   public boolean onDoubleTap(MotionEvent e) {
    if(mDoubleTapGesture !=null){
    
     RelativeLayout relative3 = (RelativeLayout) findViewById(R.id.teel);
     LinearLayout relative1 = (LinearLayout) findViewById(R.id.hide1);
     LinearLayout relative2 = (LinearLayout) findViewById(R.id.hide2);
     mDoubleTapGesture.onTouchEvent(e);
     if(relative1.getVisibility() == View.VISIBLE && relative2.getVisibility() == View.VISIBLE ){
      relative1.setVisibility(View.GONE);
      relative2.setVisibility(View.GONE);
     }
      
    
     else{
      relative1.setVisibility(View.VISIBLE);
      relative2.setVisibility(View.VISIBLE);
        }
    }
    return true;
     
   }

   @Override
   public boolean onDoubleTapEvent(MotionEvent e) {
    // TODO Auto-generated method stub
    return false;
   }
  };

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  private static final String DEBUG_TAG = "ksrhho";
 private static final Context Actimage2 = null;
 



 public void move2(View v) {
  int sel = v.getId();
  if (sel == R.id.back_btn) {
   Toast.makeText(this, "Back", Toast.LENGTH_SHORT).show();
   Intent it = new Intent(this, Actimage.class);
   this.startActivity(it);

  }

 }


 
  
 
class Point {
 float x;
 float y;
 boolean isDraw;

 public Point(float x, float y, boolean isDraw) {
  this.x = x;
  this.y = y;
  this.isDraw = isDraw;
 }
}

class MyPaint extends View {
 public MyPaint(Context context) {
  super(context);
  setLayoutParams(new LayoutParams(
    android.app.ActionBar.LayoutParams.MATCH_PARENT,
    LayoutParams.MATCH_PARENT));
  this.setOnTouchListener(new OnTouchListener() {
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction()) {
    case MotionEvent.ACTION_MOVE:
     points.add(new Point(event.getX(), event.getY(), true));
     invalidate();
     break;
    case MotionEvent.ACTION_UP:
    case MotionEvent.ACTION_DOWN:
     points.add(new Point(event.getX(), event.getY(), false));
    }
    return true;
   }
  });
 }

 @Override
 protected void onDraw(Canvas canvas) {
  super.onDraw(canvas);
  Paint p = new Paint();
  p.setColor(Color.BLACK);
  p.setStrokeWidth(3);
  for (int i = 1; i < points.size(); i++) {
   if (!points.get(i).isDraw)
    continue;
   canvas.drawLine(points.get(i - 1).x, points.get(i - 1).y,
     points.get(i).x, points.get(i).y, p);
  }
 }

 ArrayList<Point> points = new ArrayList<Point>();

}}