0

Я создаю страницу входа с анимацией, например, FB. И я хочу, чтобы изображение моего логотипа показывалось в центре в течение нескольких секунд, в то время как анимированные из Ydelta в Ydelta. Код:Хотите, чтобы изображение отображалось в центре в течение нескольких секунд при переходе от (YDelta) в (toYDelta) в Translate Animation

animation = AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate); 

     animation.setAnimationListener(new Animation.AnimationListener() { 


      @Override 
      public void onAnimationStart(Animation arg0) { 
      } 

      @Override 
      public void onAnimationRepeat(Animation arg0) { 
      } 

      @Override 
      public void onAnimationEnd(Animation arg0) { 



         loginBox.setVisibility(View.VISIBLE); 
         Animation animFade = AnimationUtils.loadAnimation(MainActivity.this, R.anim.fade); 
         loginBox.startAnimation(animFade); 

      } 
     }); 

     ImageView imgLogo = (ImageView) findViewById(R.id.imageView); 
     imgLogo.startAnimation(animation); 

    } 

translate.xml

<?xml version="1.0" encoding="utf-8"?> 
<set 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
    android:fillAfter="true"> 
    <translate 
     android:fromYDelta="30%p" 
     android:toYDelta="0%p" 
     android:duration="1000" /> 
</set> 

Любой тип справки, Оценил !! Благодаря

+0

Не могли бы вы объяснить, что происходит, и то, что вы ожидали? Код выглядит нормально, я думаю. Перевести в imgLogo и после этого затухать в loginBox. – FlanschiFox

+0

@oberflansch да, он работает нормально, но я хочу, чтобы этот логотип изображения был видимым в центре экрана в течение нескольких секунд, а затем переместился в положение YDelta. –

+0

@oberflansch: я хочу, чтобы он останавливался в центре в течение нескольких секунд или начинал с центра (подождите несколько секунд), а затем переместился в положение (toYDelta). –

ответ

0

Вы могли бы использовать две анимации:

translate1.xml:

<translate 
    android:fromYDelta="0%" 
    android:toYDelta="50%" 
    android:duration="1000" 
    /> 

translate2.xml:

<translate 
    android:fromYDelta="50%" 
    android:toYDelta="100%" 
    android:duration="1000" 
    android:startOffset="2000" /> 

С android:startOffset отложить анимацию.


moveToCenterAnim= AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate1); 

moveToCenter.setAnimationListener(new Animation.AnimationListener() { 


     @Override 
     public void onAnimationStart(Animation arg0) { 
     } 

     @Override 
     public void onAnimationRepeat(Animation arg0) { 
     } 

     @Override 
     public void onAnimationEnd(Animation arg0) { 

      ... 

      ImageView imgLogo = (ImageView) findViewById(R.id.imageView);  
      Animation moveOnAnim= AnimationUtils.loadAnimation(MainActivity.this, R.anim.translate2); 
      imgLogo.startAnimation(moveOnAnim); 

     } 
    }); 

    ImageView imgLogo = (ImageView) findViewById(R.id.imageView); 
    imgLogo.startAnimation(moveToCenterAnim); 

} 
+1

Эй, спасибо. С этим я понял и понял эту идею. Большое спасибо. –