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



所以我试图得到一个按钮在屏幕上移动时,它被点击。它目前是设置计数点击,但我想要的按钮移动,每次你点击它。我已经尝试了翻译动画,它没有工作,因为按钮仍然从原始位置触发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);

最新更新