我想在我的Android应用程序中实现fling
个手势检测.
我有的是包含9ImageView
的GridLayout
.来源可以在这里找到:Romain Guys's Grid Layout.
我拿的那个文件是从罗曼·盖伊的Photostream application里拿来的,只是稍微改编了一下.
对于简单的点击情况,我只需要将我添加的每个ImageView
的onClickListener
设置为实现View.OnClickListener
的主activity
.要实现能够识别fling
的东西似乎要复杂得多.我猜这是因为它可能跨越views
米?
-
如果我的活动实现
public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...
-
如果我的活动实现
public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ...
如果我定制了一个
View
,比如GestureImageView
扩展到ImageView
,我不知道如何从视图中告诉活动发生了fling
.在任何情况下,我try 了这个方法,当我touch 屏幕时,这些方法没有被调用.
我真的需要一个跨视图工作的具体例子.我应该在什么时候以何种方式附上listener
?我还需要能够检测到单次点击.
// Gesture detection
mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
int dx = (int) (e2.getX() - e1.getX());
// don't accept the fling if it's too short
// as it may conflict with a button push
if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.absvelocityY)) {
if (velocityX > 0) {
moveRight();
} else {
moveLeft();
}
return true;
} else {
return false;
}
}
});
是否可以在我的屏幕顶部放置一个透明视图来捕捉狂欢?
如果我不从XML Select inflate
个子图像视图,我可以将GestureDetector
作为构造函数参数传递给我创建的ImageView
个新的子类吗?
这是一个非常简单的活动,我试图让fling
检测工作:SelectFilterActivity (Adapted from photostream).
我一直在寻找这些来源:
到目前为止,我什么都没做,我希望能得到一些建议.