我有一个正方形的图像(像一块木板),每边有10个视野。我正在尝试在此棋盘周围移动,进入各个领域(例如棋盘游戏中的令牌/典当,一个步骤就是一个步骤)。经过10个步骤后,我必须更改方向(上,左,右,下)。我正在尝试制作任何动画,在每次迭代中都更改图像位置,但是仅工作一次。
示例:
for (int i = 0; i < range; ++i) {
asX = token.getX();
asY = token.getY();
moveLength = 2.5f;
if (1 case) {
token.animate().x(asX - (2.5f * token.getWidth())).y(asY);
} else if (2 case) {
token.animate().x(asX - (2.5f * token.getWidth())).y(asY);
} else if (3 case) {
token.animate().x(asX - (2.5f * token.getWidth())).y(asY);
} else if (4 case) {
token.animate().x(asX - (2.5f * token.getWidth())).y(asY);
}
position++;
token.invalidate();
}
range is a number of moves, 1 case - move left, 2 case - move up, 3 case - move rigth, 4 case - move down
因此,例如,当range = 6和pos = 0(起始字段处的令牌)时,令牌应向左移动6个字段(因为pos <10且范围也<10),接下来是range = 8和pos = 6,令牌应向左移动4个字段,然后向上移动4个,依此类推。 它只能移动一个字段,而不是范围。 有想法吗?
答案 0 :(得分:0)
Use ObjectAnimator类具有新的构造函数,使您可以为坐标设置动画
有关更多信息,请阅读this
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Path path = new Path();
path.arcTo(0f, 0f, 1000f, 1000f, 270f, -180f, true);
ObjectAnimator animator = ObjectAnimator.ofFloat(view, View.X, View.Y, path);
animator.setDuration(2000);
animator.start();
} else {
// Create animator without using curved path
}