嗨 我在 LinearLayout(垂直方向)中有两个 ImageView 。我正在为两个 Imageview 设置 setOnTouchListener 。 这样我就能够观察多点触摸缩放以及 ImageView 的所有拖动。 当我尝试实现 OnDoubletapListener 时,问题就出现了。 OnDoubleTapListener 仅在不使用 setOnTouchListener 的情况下工作。
但是,如果我评论 setOnTouchListner 那么我就可以执行双击..
两个功能不能同时工作吗???
如果您愿意,我也可以提供源代码.. 请帮忙
安基特·维尔玛
最佳答案
我也遇到过同样类型的问题......我用这种方式解决......
如果您使用 Android mutitouch Controller http://code.google.com/p/android-multitouch-controller/用于多点触控
和手势检测器 http://www.41post.com/4194/programming/android-detecting-double-tap-events用于双击
比
在 MultiTouchController.java 中更新此步骤
--> 导入
import android.view.GestureDetector.OnDoubleTapListener;
import android.view.GestureDetector.OnGestureListener;
-->实现
public class MultiTouchController<T> implements OnGestureListener{
-->
public MultiTouchController(MultiTouchObjectCanvas<T> objectCanvas2, boolean handleSingleTouchEvents) {
//....
gd = new GestureDetector(this);
// set the on Double tap listener
gd.setOnDoubleTapListener(new OnDoubleTapListener() {
@Override
public boolean onDoubleTap(MotionEvent e) {
// set text color to green
Log.d("CLICK", "double taped");
return false;
}
@Override
public boolean onDoubleTapEvent(MotionEvent e) {
// if the second tap hadn't been released and it's being moved
if (e.getAction() == MotionEvent.ACTION_MOVE) {
Log.d("CLICK", "double tap event ACTION_MOVE");
} else if (e.getAction() == MotionEvent.ACTION_UP)// user
// released
// the
// screen
{
Log.d("CLICK", "double tap event ACTION_UP");
}
return false;
}
@Override
public boolean onSingleTapConfirmed(MotionEvent e) {
// set text color to red
Log.d("CLICK", "single taped");
return true;
}
});
--> 在 onTouch(MotionEvent event) 处将触摸事件设置为 gd
public boolean onTouchEvent(MotionEvent event) {
gd.onTouchEvent(event);
try {
//.....
不要更改任何其他文件。
现在测试...希望你解决问题...必须回复...
关于Android 多点触控和双击协同工作以实现 ImageView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4604011/