所以我试图得到一个按钮在屏幕上移动时,它被点击。它目前是设置计数点击,但我想要的按钮移动,每次你点击它。我已经尝试了翻译动画,它没有工作,因为按钮仍然从原始位置触发onClick。
我了解了ObjectAnimator,并一直试图让它工作,因为onClick事件将与按钮移动,但我似乎无法让它工作。我还需要帮助让按钮随机移动在它的布局父。任何帮助都将是非常感激的:)
这是我当前的对象动画器代码。请注意,它还没有为随机运动设置,因为我不确定如何让它这样做:ObjectAnimator animX = ObjectAnimator.ofFloat(btnCount, "xTranslate", 0f, 50f);
ObjectAnimator animY = ObjectAnimator.ofFloat(btnCount, "TranslateY", 0f, 50f);
AnimatorSet animSet = new AnimatorSet();
animSet.playSequentially(animX, animY);
animSet.setDuration(500);
animSet.start();
完成此操作的最简单方法如下。在onClick
侦听器上执行此操作。
btnCount.animate().xBy(10).yBy(10);
关于随机,我想你可以使用像这样简单的东西…无论如何,您可能必须注意达到屏幕限制。
Random r = new Random();
btnCount.animate().xBy(r.nextInt(10)+1).yBy(r.nextInt(10)+1);
发现使用下面的代码可以达到我想要的效果:
Random r = new Random();
int buttonHeight;
int buttonWidth;
buttonHeight = btnCount.getHeight();
buttonWidth = btnCount.getWidth();
int xLeft = r.nextInt(480 - buttonHeight);
int yUp = r.nextInt(800 - buttonWidth);
int xRight = r.nextInt(480 + buttonHeight);
int yDown = r.nextInt(800 + buttonHeight);
btnCount.setX(xLeft);
btnCount.setY(yUp);
btnCount.setX(xRight);
btnCount.setY(yDown);