我有一个自定义视图,它根据某个参数(center
)绘制一些东西。
一旦用户移动视图,我将重新绘制视图。(我使用GestureDetector
and 覆盖该onScroll
方法)。
但是现在我想实现投掷效果。我知道我必须在方法中做一些事情onFling
。
但我不知道怎么做。
看来这OverScroller.fling
就是我想要的。但我找不到更多关于它的文件。
@Override
public void computeScroll() {
super.computeScroll();
if (sc.computeScrollOffset()) {
int stx = sc.getStartX(), sty = sc.getStartY();
int cx = sc.getCurrX(), cy = sc.getCurrY();
int edx = sc.getFinalX(), edy = sc.getFinalY();
if (cx <= edx && cy <= edy) {
this.center = new Point(this.center.x+cx-stx,this.center.y+cy-sty);
}
ViewCompat.postInvalidateOnAnimation(this);
}
}
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
Log.i("event", "fling:" + e1.getX() + "," + e2.getX());
sc.forceFinished(true);
sc.fling(0, 0, velocityX, velocityY, -30, 30, -30, 30);
return true;
}
当我运行应用程序时,我无法获得预期的投掷效果。
我想念什么吗?