인터넷을 참조하면서 짜봤는데 더블탭이 먹질 않습니다.
한번만 봐주시면 감사하겠습니다.
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>();
}}