2
我一直在開發繪圖應用程序的工作,我需要通過以檢測雙擊:GestureDetector沒有我的觀點
package com.nda.painter.library.views;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.Log;
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.View.OnLongClickListener;
import android.view.View.OnTouchListener;
import com.nda.painter.library.Painter;
import com.nda.painter.library.listeners.DrawingListener;
public class PainterView extends View implements
DrawingListener, OnTouchListener,
OnGestureListener, OnDoubleTapListener {
private GestureDetector detector;
private Context context;
private Painter painter;
private Bitmap bitmap;
private Paint bitmapPaint;
private Path path;
private Paint paint;
private float x;
private float y;
public PainterView(Context context, Painter painter) {
super(context);
this.context=context;
this.painter=painter;
//setClickable(true);
//setLongClickable(true);
//setOnTouchListener(this);
detector=new GestureDetector(context, this);
detector.setIsLongpressEnabled(true);
detector.setOnDoubleTapListener(this);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
}
public void setPainter(Painter painter) {
this.painter=painter;
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
Log.e("event", "event");
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
Log.e("event", "long");
painter.drawString(x,y,"123");
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onDoubleTap(MotionEvent e) {
// TODO Auto-generated method stub
Log.e("event", "double");
return true;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
}
請不要在其他代碼中看到的,只是在GestureDetector 。它不起作用!我在Log中沒有看到任何筆記。請告訴我爲什麼。
謝謝。但雙擊還沒有奏效。 – user1445877
您是否試圖評論此代碼: detector.setIsLongpressEnabled(true); detector.setOnDoubleTapListener(this); 您的手勢檢測器中已有所有觸摸事件,您無需單獨重新定義偵聽器。 –
是的,但它不能幫助我 – user1445877