如何在设置视图的alpha之前创建1秒的延迟?

Shr*_*jan 36 xml animation android android-animation layout-animation

在我的应用程序中,我将在一个动画后设置alpha.如:

hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);
 menuLayout.startAnimation(hideMenu);
 menuLayout.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

但是我想在Alpha设置View之前设置1秒的延迟.因为我无法看到该布局的动画.那怎么可能呢?

谢谢.

lik*_*bby 77

你不能用

android:startOffset int.调用start()后动画延迟的毫秒数.

在你的动画xml?

请参阅动画资源文档.


Dmy*_*lyk 68

在动画xml文件中,您可以使用android:startOffset属性:

android:startOffset int. The amount of milliseconds the animation delays after start() is called.
Run Code Online (Sandbox Code Playgroud)


wes*_*ton 21

假设您使用的是view .animate()方法,则可以设置起始偏移量:

view.animate().x(100)
              .setDuration(5000)
              .setStartDelay(1000);
Run Code Online (Sandbox Code Playgroud)


Kan*_*gam 7

Handler是实现这一目标的好方法.

new Handler().postDelayed(new Runnable()
{
   @Override
   public void run()
   {
     view.startAnimation(animation);
   }
}, 1000);
Run Code Online (Sandbox Code Playgroud)


Obs*_*ver 7

在你的情况下,你可以简单地这样做

hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);

hideMenu.setStartOffset(1000);

 menuLayout.startAnimation(hideMenu);
 menuLayout.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以从活动动态控制开始时间的值