1

Как я могу контролировать скорость анимации? Анимация трансляции идет снизу вверх, и я хотел бы замедлить анимацию за время ее выполнения. Как я могу это достичь? Вот что у меня есть:Есть ли способ замедлить перевод анимации при ее выполнении?

public void SlideToAbove() { 

    Animation slide = null; 
    slide = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, 
      Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 
      0.0f, Animation.RELATIVE_TO_SELF, 0.0f); 

    slide.setDuration(300); 
    slide.setFillAfter(true); 
    slide.setFillEnabled(true); 
    toolBar.startAnimation(slide); 

    final Animation finalSlide = slide; 
    slide.setAnimationListener(new Animation.AnimationListener() { 


     public void onAnimationStart(Animation animation) { 
     } 


     public void onAnimationRepeat(Animation animation) { 
     } 


     public void onAnimationEnd(Animation animation) { 


      CoordinatorLayout.LayoutParams lp = new CoordinatorLayout.LayoutParams(
        toolBar.getWidth(), toolBar.getHeight()); 
      lp.setMargins(0, 0, 0, 0); 
      appBarLayout.setLayoutParams(lp); 
      finalSlide.setFillAfter(true); 

     } 

    }); 

ответ

5

Попробуйте это,

slide =new TranslateAnimation(-100f, 0f, 0f, 0f); 
slide.setDuration(600); 
+0

добавить больше, если вы хотите, чтобы это было медленным. –

+0

Я имел в виду, как замедлить время, когда дно доходит до вершины. Например, когда пользователь нажимает анимацию, она берет дно, чтобы достичь вершины в течение 4 секунд. – Sean

+0

slide = new TranslateAnimation (-100f, 0f, 0f, 0f); в основном длительность помогает, но вы можете попробовать это –

Смежные вопросы