我试图在createCircularReveal()中实现FloatingButton。但是动画太快了。如何增加动画的持续时间。我尝试了setDuration(milli-seconds),但是它不起作用。

我关注developer.android.com,Defining Custom Animations

这是我的代码:

int cx = (fabBtn.getLeft() + fabBtn.getRight()) / 2;
int cy = (fabBtn.getTop() + fabBtn.getBottom()) / 2;

int finalRadius = Math.max(fabBtn.getWidth(), fabBtn.getHeight());
Animator anim = ViewAnimationUtils.createCircularReveal(fabBtn, cx, cy, 2, finalRadius);
anim.setDuration(2000);
fabBtn.setVisibility(View.VISIBLE);
anim.start();

最佳答案

我也遇到了我提到的问题,并且可以通过使cx和cy成为 ImageView 的中心位置来解决此问题(在您的情况下,我认为它是按钮)。
因此,使用以下命令获取cx和cy:

int cx = (fabBtn.getWidth()) / 2;
int cy = (fabBtn.getHeight()) / 2;

代替此::
int cx = (fabBtn.getLeft() + fabBtn.getRight()) / 2;
int cy = (fabBtn.getTop() + fabBtn.getBottom()) / 2;

10-08 20:09