我创建了一个加载小球图像的自定义视图。这样onDraw方法看起来像这样:
public void onDraw(Canvas canvas) {
canvas.drawBitmap(...);
}
后来,我添加了一个onTouch监听器,以便能够监听触摸事件以使球能够被拖动。
public boolean onTouchEvent(MotionEvent event) {
int eventaction = event.getAction();
int X = (int)event.getX();
int Y = (int)event.getY();
switch (eventaction ) {
case MotionEvent.ACTION_MOVE: // touch drag with the ball
// move the balls the same as the finger
ball.setX(X-25);
ball.setY(Y-25);
break;
}
// redraw the canvas
invalidate();
return true;
}
现在,我试图让球沿曲线移动,如果它没有移动到一个固定点,让它回到原来的位置。所以我目前面临两个问题:
ball.startAnimation
,如果
球略微失焦,
球出现了切片。Ball Swing http://www.freeimagehosting.net/uploads/b68d5434ed.png
有什么建议吗?
答案 0 :(得分:0)
曲线似乎是圆的一部分,表明它具有中心和半径。
我建议确定这些是什么,然后编写一个函数,给定手指位置,返回球沿曲线的位置。这仅需要确定手指与圆心相比的角度,然后使用该角度使用基本三角法正确定位球。
例如,在你的照片中,球是0°,标记看起来是大约20°。
然后你可以确定当手指超过某个点时球应该回到什么角度(再次,从圆圈的中心角度描述)