所以我试图让屏幕上的按钮在点击时移动。它目前设置为计算点击次数,但我希望每次点击它时按钮都会移动。我尝试过翻译动画,但由于按钮仍然从原始位置触发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();
答案 0 :(得分:1)
完成此操作的最简单方法如下所示。在onClick
听众上执行此操作。
btnCount.animate().xBy(10).yBy(10);
关于随机,我想你可以使用像这样简单的东西......无论如何,你可能需要照顾达到屏幕限制。
Random r = new Random();
btnCount.animate().xBy(r.nextInt(10)+1).yBy(r.nextInt(10)+1);
答案 1 :(得分:0)
发现使用以下内容做了我需要它:
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);