2012-12-12 31 views
5

Mevcut konumdan ekranın ortasına kayan bir animasyon yapmaya çalışıyorum ve sonra çevirin. Her bir hareketli bileşenin düzgün çalışmasını sağlıyorum, ancak hepsini bir startoffset ile bir sete koyduğumda, animasyon bu ofset bitene kadar başlamaz ve tüm animasyonları bir kerede gerçekleştirir. Bu konuda herhangi bir yardım çok takdir edilmektedir.Android - Animasyon başlangıç ​​ofseti düzgün çalışmıyor

slide_down.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!-- Slide down --> 
    <translate 
     android:fromYDelta="0%" 
     android:toYDelta="100%" 
     android:duration="1000"/> 

    <!-- Set alpha to fully opaque --> 
    <alpha 
     android:fromAlpha="0.8" 
     android:toAlpha="1.0" 
     android:duration="1000" /> 

    <!-- Flip image once it's in the center --> 
    <!-- ***** HERE IS THE only offset I set ****** --> 
    <scale 
     android:fromXScale="0.0" 
     android:toXScale="1.0" 
     android:pivotX="50%" 
     android:fromYScale="1.0" 
     android:toYScale="1.0" 
     android:startOffset="1000" 
     android:duration="200" /> 
</set> 

çağıran kod

Animation anim = AnimationUtils.loadAnimation(getActivity(), slideDirection); 
     anim.setAnimationListener(new AnimationListener() { 
      public void onAnimationStart(Animation animation) {    
      } 

      public void onAnimationRepeat(Animation animation) {     
      } 

      public void onAnimationEnd(Animation animation) { 
       mCallBack.categorySelected(view.getId()); 
      } 
     }); 

     view.clearAnimation(); 
     view.startAnimation(anim); 

sayesinde Dman

cevap

2

Animasyon uzaklıklar hep animasyonun baştan hesaplayın. Animasyonlarınızın tek tek oynamasını istiyorsanız, ofsetleri kendiniz hesaplamak zorundasınız.

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
    <!-- Slide down --> 
    <translate 
     android:fromYDelta="0%" 
     android:toYDelta="100%" 
     android:duration="1000"/> 

    <!-- Set alpha to fully opaque --> 
    <alpha 
     android:fromAlpha="0.8" 
     android:toAlpha="1.0" 
     android:startOffset="1000" 
     android:duration="1000" /> 

    <!-- Flip image once it's in the center --> 
    <!-- ***** HERE IS THE only offset I set ****** --> 
    <scale 
     android:fromXScale="0.0" 
     android:toXScale="1.0" 
     android:pivotX="50%" 
     android:fromYScale="1.0" 
     android:toYScale="1.0" 
     android:startOffset="2000" 
     android:duration="200" /> 
</set> 
+0

yanıt sayesinde -

şu 1 saniye tercüme oynayacak, daha sonra buna alfa ikinci 200ms için ölçek takip eder. Aradığım şey, görüntüyü merkeze taşındıktan sonra baş döndürme animasyonuyla başlayan ve tamamen opak olan, çeviri ve alfaların aynı anda gerçekleştirilmesidir. – DMCApps

İlgili konular