анимация просмотра текста Android не плавная - PullRequest
1 голос
/ 15 декабря 2011

Я пытаюсь выполнить две текстовые анимации подряд с моим TextView под Android

первый:

TextView target = (TextView)findViewById(R.id.textanimation);
target.setText(text1);
target.startAnimation(animationSet1);   

animationSet1 - это набор альфа-анимации и анимации перевода:

Animation alpha = new AlphaAnimation(0.0f, 1.0f);     
Animation a = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF,  0,
Animation.RELATIVE_TO_SELF, -1.0f, 
Animation.RELATIVE_TO_SELF, 0);     

alpha.setDuration( 1000 );
a.setDuration( 1000 );

Когда onAnimationEnd происходит в анимации Set1, я немедленно запускаю другую анимацию

TextView target = (TextView)findViewById(R.id.textanimation);
target.setText(text2);
target.startAnimation(animationSet1);

Однако во 2-й анимации на долю секунды я вижу полностью непрозрачный текст, однако он должен начинаться с 0 альфа. Как избежать этой ситуации? Буду признателен за любой ответ.

P.S. Даже если у меня есть 2 отдельных просмотра текста с подготовленным текстом в обоих - одна и та же ошибка видна.

Если я поставлю некоторую задержку между анимациями, обе они станут плавными.

  • Сергей

1 Ответ

0 голосов
/ 16 декабря 2011

Я не уверен, как вы запускаете начало 2-й анимации после завершения 1-й анимации.Я предполагаю, что вы проверяете, является ли анимация в представлении нулевой.Это не лучший или правильный способ сделать это.Вместо этого вы должны AnimationListener

Animation animation1 = new Animation();//Replace with your animation

animation1.setDuration(DURATION_1);
animation1.setAnimationListener(new AnimationListener() {
    public void onAnimationStart(Animation arg0) {}
    public void onAnimationRepeat(Animation arg0) {}
    public void onAnimationEnd(Animation arg0) {
        Animation animation2 = new Animation();
        animation2.setDuration(DURATION_2);
        view2.startAnimation(animation2);
    }
});

view1.startAnimation(animation1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...