作为前言,有很多关于淡入淡出动画的问题,但似乎没有一个问题与我的问题完全相同。我的应用程序中有一个 float 操作按钮,我希望它以一定的持续时间和延迟淡出。动画的代码(尽管它不重要,但位于 float Action Action 监听器内)如下所示。在这段代码中,b
是 FAB。
AlphaAnimation animation1 = new AlphaAnimation(1, 0);
animation1.setDuration(1000);
animation1.setStartOffset(1000);
animation1.setFillAfter(true);
b.startAnimation(animation1);
代码看起来不错,但就是行不通,我已经没有主意了。我尝试按照b.animate()
使用b.setAnimation()
,但没有成功。我不想使用 XML,因为动画 startOffSet 的值依赖于其他组件。
提前致谢。
* **更新 ***
我找到了解决办法。将动画应用到按钮:b.setAnimation(animation)
,而不是 b.startAnimation(animation)
。如果您尝试像这样使按钮/ View 不可见
b.setVisibility(View.INVISIBILE)
它将使用您指定的动画。
最佳答案
您能否指定您使用的是哪个 Android 支持设计库版本? 我在 23.2.0 上测试了以下代码,并且使用以下代码可以很好地执行动画:
final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlphaAnimation animation1 = new AlphaAnimation(1, 0);
animation1.setDuration(1000);
animation1.setStartOffset(1000);
animation1.setFillAfter(true);
fab.startAnimation(animation1);
}
});
关于java - float 操作按钮上的淡入淡出动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35845279/