在我的应用程序中,我将在一个动画之后设置 alpha。就像:
hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);
menuLayout.startAnimation(hideMenu);
menuLayout.setVisibility(View.GONE);
但我想在 Alpha 设置视图之前设置 1 秒的延迟。因为我无法看到该布局的动画。那么怎么可能呢?
谢谢。
在我的应用程序中,我将在一个动画之后设置 alpha。就像:
hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);
menuLayout.startAnimation(hideMenu);
menuLayout.setVisibility(View.GONE);
但我想在 Alpha 设置视图之前设置 1 秒的延迟。因为我无法看到该布局的动画。那么怎么可能呢?
谢谢。
在您的动画xml文件中,您可以使用android:startOffset属性:
android:startOffset int. The amount of milliseconds the animation delays after start() is called.
假设您使用的是视图.animate()方法,您可以设置起始偏移量:
view.animate().x(100)
.setDuration(5000)
.setStartDelay(1000);
Handler 是一个很好的技术来实现这一点。
new Handler().postDelayed(new Runnable()
{
@Override
public void run()
{
view.startAnimation(animation);
}
}, 1000);
在你的情况下,你可以简单地这样做
hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);
hideMenu.setStartOffset(1000);
menuLayout.startAnimation(hideMenu);
menuLayout.setVisibility(View.GONE);
在这种情况下,您可以从活动中动态控制开始时间的值