我有可缩放的图片,而我正在使用ScaleGestureDetector.SimpleOnScaleGestureListener
。我需要实现以下项目:
我有一些问题。 Double Tap之前总是单击并且图片正在缩放,但是出现Toast。有没有办法避免单击?我没有足够的精明来解决这个问题。
P.S。我无法使用OnDoubleTapListener
,因为请使用ScaleGestureDetector.SimpleOnScaleGestureListener
。
UPD
case MotionEvent.ACTION_UP:
firstTime = System.currentTimeMillis();
if (Math.abs(firstTime-secondTime) < 300L) {
// scale my matrix
---//---
DONE = true; //this flag symbolize, that toast doesn't appear (false - appears)
}
else if (!DONE) {
// making toast
}
secondTime = firstTime;
break;
当DoubleTap启用图像缩放但显示吐司时
答案 0 :(得分:2)
@ matt5784,谢谢。我能够解决我的问题。
case MotionEvent.ACTION_UP:
float xDiff = Math.abs(curr.x - start.x);
float yDiff = Math.abs(curr.y - start.y);
firstTime = System.currentTimeMillis();
if (Math.abs(firstTime-secondTime) > 200L) {
myHand.postDelayed(mRun, 200);
}
else if (!DONE) {
//scale my matrix
DONE = true; //this flag symbolize, that toast doesn't appear (false - appears)
}
secondTime = firstTime;
break;
Handler myHand = new Handler();
private Runnable mRun = new Runnable() {
@Override
public void run() {
if (!DONE) {
// make toast
}
}
答案 1 :(得分:0)
我建议实施延迟,在一次点击时不会立即弹出信息,但只有在合理的时间内没有遇到第二次点击时才会显示(可能是您的双倍阈值 - 水龙头)。即如果设置为在.2秒内注册任何水龙头作为双击,在等待.2秒之前不要显示信息,并确保没有双击。
备用解决方案(可能不太有用) - 使用双击/缩放功能调用任何使信息框消失的功能。然而,它可能仍然会弹出很短的时间,这可能看起来很愚蠢/有问题。