onCreate()方法

时间:2016-11-28 00:46:38

标签: android animation android-activity oncreate measurement

我希望在TextView方法中启动活动时为onCreate()设置动画。但是,当我尝试查看视图的高度或宽度时,它始终为0.在我看来,了解视图的高度或宽度非常重要因为我想设置翻译的高度或宽度Y或X.例如,请考虑以下代码:

   TextView text=(TextView)(findViewById(R.id.text));
    text.setText(R.string.some_text);
    text.setTranslationY(-text.getHeight());

    ObjectAnimator moveTextAnimator=ObjectAnimator.ofFloat(text,"translationY",-text.getHeight(),0);
    moveTextAnimator.setDuration(1000);
    ObjectAnimator fadeTextAnimator=ObjectAnimator.ofFloat(text,"alpha",0,1);
    fadeTextAnimator.setDuration(2000);


    AnimatorSet textAnimatorSet=new AnimatorSet();
    textAnimatorSet.playSequentially(moveTextAnimator,fadeTextAnimator);
    textAnimatorSet.start();

我想在onCreate()方法中运行此代码。你知道如何解决这个问题吗?我相信其中一个解决方案就是等到视图被绘制出来。但是,如果我想为布局中的每个视图运行相同的动画,该怎么办?我需要等待每一个观点吗?我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

只需使用text.post(new Runnable(){});

在runnable中调用text.getHeight()将获得正确的结果;