如何在正方形周围移动图像

时间:2019-05-27 09:28:40

标签: java android android-animation

我有一个正方形的图像(像一块木板),每边有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个,依此类推。 它只能移动一个字段,而不是范围。 有想法吗?

1 个答案:

答案 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
}