在我的应用程序中,我将在动画后设置透明度。
hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);
menuLayout.startAnimation(hideMenu);
menuLayout.setVisibility(View.GONE);
但我希望在将 Alpha 设置为视图之前设置 1 秒的延迟,因为这样我才能看到该布局的动画效果。那么如何实现呢?
谢谢。
在我的应用程序中,我将在动画后设置透明度。
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.
你不能在动画XML中使用 android:startOffset
属性吗?
android:startOffset
是一个整数值,代表动画在调用start()
方法后延迟的毫秒数。
请参阅动画资源文档。
假设您正在使用视图 .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);