2015-09-08 17 views
0

我需要對方「隊列」 喜歡當動畫的一個完成其他開始觸發動畫繪製資源後,開始工作 現在所有的動畫工作不錯,但都開始在同一時間但是當我試圖把AnimationListener,使它們相互觸發 我有錯誤觸發機器人路徑矢量動畫對方

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hesham.salahshow/com.example.hesham.salahshow.MainActivity}: java.lang.RuntimeException: Unknown animation name: objectAnimator 

任何一個可以幫助?

MainActivity

public class MainActivity extends ActionBarActivity { 
private ImageView vectorImage; 
private ImageView vectorImage2; 
private ImageView vectorImage3; 
private ImageView vectorImage4; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    vectorImage = (ImageView) findViewById(R.id.imageid); 
    vectorImage2 = (ImageView) findViewById(R.id.imageid2); 
    vectorImage3 = (ImageView) findViewById(R.id.imageid3); 
    vectorImage4 = (ImageView) findViewById(R.id.imageid4); 

    mAnim = AnimationUtils.loadAnimation(this, R.anim.path); 
    mAnim.setAnimationListener((Animation.AnimationListener) this); 

    vectorImage.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 


vectorImage.startAnimation(mAnim); 
     ((Animatable) vectorImage.getDrawable()).start(); 

      // ((Animatable) vectorImage2.getDrawable()).start(); 
      // ((Animatable) vectorImage3.getDrawable()).start(); 
      // ((Animatable) vectorImage4.getDrawable()).start(); 
     }}); 

} 
} 

動畫/路徑

<?xml version="1.0" encoding="utf-8"?> 
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android" 
android:propertyName="trimPathEnd" 
android:valueFrom="0" 
android:valueTo="1" 
android:duration="1000" 
android:valueType="floatType" 
android:interpolator="@android:interpolator/linear"> 

</objectAnimator> 

感謝提前:)

回答

0

我用另一種方式這對我的工作好

public class MainActivity extends ActionBarActivity { 
private ImageView vectorImage; 
private ImageView vectorImage2; 
private ImageView vectorImage3; 
private ImageView notiImageView; 
private ImageButton next; 
private int loopaya = 1; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    vectorImage = (ImageView) findViewById(R.id.imageid); 
    vectorImage2 = (ImageView) findViewById(R.id.imageid2); 
    vectorImage3 = (ImageView) findViewById(R.id.imageid3); 
    notiImageView = (ImageView) findViewById(R.id.notification); 
    next = (ImageButton) findViewById(R.id.next); 
    notiImageView.setVisibility(View.INVISIBLE); 
    vectorImage2.setVisibility(View.INVISIBLE); 
    vectorImage.setVisibility(View.INVISIBLE); 
    vectorImage3.setVisibility(View.INVISIBLE); 


    next.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      runThread(); 

     } 
    }); 

} 

private void runThread() { 
    final Handler h = new Handler(); 
    final int delay = 1001; //milliseconds 


    h.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 

        if (loopaya == 1) { 

         vectorImage.setVisibility(View.VISIBLE); 
         ((Animatable) vectorImage.getDrawable()).start(); 
         loopaya++; 
         h.postDelayed(this, delay); 
        } else if (loopaya == 2) { 

           vectorImage2.setVisibility(View.VISIBLE); 

         ((Animatable) vectorImage2.getDrawable()).start(); 
         loopaya++; 
         h.postDelayed(this, delay); 
        } else if (loopaya == 3) { 
         vectorImage3.setVisibility(View.VISIBLE); 

         ((Animatable) vectorImage3.getDrawable()).start(); 
         loopaya++; 
        // h.postDelayed(this, delay); 
         notiImageView.setVisibility(View.VISIBLE); 
         Animation myFadeInAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.fadein); 
         notiImageView.startAnimation(myFadeInAnimation); 
        } 
       } 
      }); 


      h.postDelayed(this, delay); 

     } 
    }, delay); 
    } 
0

什麼是您的最低SDK版本? ObjectAnimator在API 11中引入。

此外,要按順序放置動畫,您可以覆蓋AnimationListener.onAnimationEnd()並使用它來檢查剛剛結束的動畫並開始下一個動畫。

+0

我用最小的SDK 21 –