如何在点击屏幕上随机移动按钮?

时间:2014-06-21 23:56:04

标签: android animation button random move

所以我试图让屏幕上的按钮在点击时移动。它目前设置为计算点击次数,但我希望每次点击它时按钮都会移动。我尝试过翻译动画,但由于按钮仍然从原始位置触发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();

2 个答案:

答案 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);