web-dev-qa-db-ja.com

ビューのアルファを設定する前に1秒の遅延を作成する方法は?

マイアプリケーションでは、1つのアニメーションの後にアルファを設定します。など:

hideMenu = AnimationUtils.loadAnimation( getApplication(), R.anim.menu_layout_hide);
 menuLayout.startAnimation(hideMenu);
 menuLayout.setVisibility(View.GONE);

しかし、アルファがビューを設定する前に1秒の遅延を設定したいと思います。そのため、そのレイアウトのアニメーションを見ることができません。だからそれはどうですか?

ありがとう。

36

アニメーションxmlファイルでは、Android:startOffset属性:

Android:startOffset int. The amount of milliseconds the animation delays after start() is called.
67
Dmytro Danylyk

使用できません

あなたのアニメーションXMLに?.

アニメーションリソースドキュメント を参照してください。

.

75
likebobby

View .animate()メソッドを使用している場合、開始オフセットを設定できます:

view.animate().x(100)
              .setDuration(5000)
              .setStartDelay(1000);
18
weston

これを実現するには、ハンドラーが優れた手法です。

new Handler().postDelayed(new Runnable()
{
   @Override
   public void run()
   {
     view.startAnimation(animation);
   }
}, 1000);
7
Kanagalingam

あなたの場合、あなたは単にこのようにすることができます

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

hideMenu.setStartOffset(1000);

 menuLayout.startAnimation(hideMenu);
 menuLayout.setVisibility(View.GONE);

この場合、アクティビティから開始時間の値を動的に制御できます

3
Observer