Android:片段完全加载后启动动画

时间:2014-06-26 06:43:11

标签: android animation android-fragments

我有一个片段,其中包含textView fadein的动画。动画必须在片段加载后2秒后延迟一段时间后启动。我为此写了一个代码。但动画部分已完成,然后呈现视图。如何加载片段并在一段时间后延迟启动我的动画

我的代码如下:注意:该类扩展片段

Animation animFadein;
MenuClickHelper mClickHelper;
TextView tv;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    final View rootView = inflater.inflate(R.layout.fragment_main_menu,
            container, false);

    mClickHelper = new MenuClickHelper(rootView, getFragmentManager());

    tv = (TextView) rootView.findViewById(R.id.tvPresentation);
    animFadein = AnimationUtils.loadAnimation(getActivity()
            .getApplicationContext(), R.anim.fade_in);

    animFadein.setAnimationListener(new AnimationListener() {

        @Override
        public void onAnimationStart(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationRepeat(Animation animation) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onAnimationEnd(Animation animation) {
            if (animation == animFadein) {
                Toast.makeText(getActivity().getApplicationContext(),
                        "Animation Stopped", Toast.LENGTH_SHORT).show();
            }
        }
    });

    try {
        Thread.sleep(2000);
        tv.startAnimation(animFadein);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return rootView;
}

2 个答案:

答案 0 :(得分:2)

Thread.sleep(2000);不要使用 sleep 方法阻止你的main,而是可以使用Handler类并使用postdelay来延迟动画:

<强>样品:

改变这个:

 try {
    Thread.sleep(2000);
    tv.startAnimation(animFadein);
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

new Handler().postDelayed(new Runnable() {
  @Override
  public void run() {
    tv.startAnimation(animFadein);
  }
}, 2000); //will start animation in 2 seconds

答案 1 :(得分:0)

您可以使用

获得相同的结果
android:startOffset="2000"

在您的XML动画集文件中。