【发布时间】:2011-09-23 11:16:06
【问题描述】:
我想检测手指被拖过 ImageView。我得到我的 ImageView,创建 GestureDetector 和 View.OnTouchListener 的实例,然后将 View.OnTouchListener 设置为 ImageView。
OnTouchListener 检测到所有触摸(“触摸发生”)并将它们传递给 GestureDetector,但它从不调用其方法 onScroll 或 onFling。我做错了什么?下面你可以看到相关的来源:
myImageView = (ImageView) findViewById(R.id.imageView1);
myGestureDetector = new GestureDetector(this,
new GestureDetector.OnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
// TODO Auto-generated method stub
Log.d("gestures", "scroll");
return true;
}
@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
Log.d("gestures", "fling");
return true;
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
});
gestureListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (myGestureDetector.onTouchEvent(event)) {
Log.d("gestures", "here");
return true;
}
Log.d("gestures", "touch occured");
return false;
}
};
myImageView.setOnTouchListener(gestureListener);
【问题讨论】:
-
你能告诉我你要做什么吗?
-
你实现了 OnGestureListener 吗?
-
我想检测 ImageView 上的拖动动作并在 ImageView 中移动缩放的图像。另外,如果我只想将它分配给一个 ImageView,而不是整个 Activity 布局,为什么还要实现它。
-
抱歉,各位 ATM 有很多工作,无法进行编程。几天后就会得到这些答案。
-
最后我没有成功让 myGestureDetector 工作,我最终为 View.OnTouchListener() 编写了自己的 onTouch() 方法,该方法通过比较 MotionEvent.getX / getY 值来检测拖动
标签: android android-input-method