2014-04-03 39 views
0

我已經在動畫集中旋轉和翻譯動畫。當用戶點擊動畫設置開始的圖像時,如果點擊一次,則效果很好。當用戶再次單擊並且該動畫停止並在同一圖像上啓動新動畫時,前一個動畫會丟失或不可見。誰能幫忙?謝謝。 如果用戶點擊3次圖片來啓動3個動畫,我想將動畫設置爲相互獨立。那可能嗎? 這裏是我的代碼:動畫設置。不知道如何使用一個圖像和一個動畫集製作兩個動畫

RotateAnimation rAnim; 
TranslateAnimation translateanim; 

image.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      while (true) { 
       if ((count == 2)) { 
        StartAnim(); 
        break; 
       } 

       if ((count == 1)) { 
        StartAnim(); 
        break; 
       } 
     } 

     } 


    }); 

私人無效StartAnim(){

animSet = new AnimationSet(true); 

    rAnim = new RotateAnimation(-30.0F, 0.0F, 1, 0.5F, 1, 0.0F); 
    rAnim.setDuration(50); 

    rAnim.setInterpolator(new Interpolator() { 
     public float getInterpolation(float v) { 
      return 0.0F; 
     } 
    }); 
    rNum = new Random(); 
    rAnim.setDuration(50 + rNum.nextInt(150)); 
    rAnim.setRepeatCount((int) (1500/rAnim.getDuration())); 
    animSet.addAnimation(rAnim); 
    translateanim = new TranslateAnimation(2, 
      0.0F, 2, 0.1F + rNum.nextFloat()/2.0F, 2, 0.0F, 2, 
      1.0F + rNum.nextFloat()); 
    translateanim.setDuration(1500); 
    animSet.addAnimation(translateanim); 
    animSet.setFillAfter(true); 


    image2.startAnimation(animSet); 

} 

回答

0

因此,如果連續3次,你希望它動畫3倍的圖像用戶點擊?你可以創建一個名爲animationCount的整數。然後在調用metodaa()之前檢查它是否大於0,如果大於0,則增加animationCount,否則開始動畫。然後將一個AnimationListener添加到您的animSet,以便在onAnimationEnd上減少您的animationCount,然後如果animationCount大於0,則再次啓動動畫。

+0

我想有3個動畫像3個新的動畫。如果一個動畫開始那okey,但如果用戶再次點擊開始新的動畫。但以前讓完成。你明白我嗎?我嘗試添加metoddaa(); ImageView newImage = new ImageView(this);並且他們在這個newImage上添加animset。但沒有工作。 – ArmsOP

+1

好的,所以用戶再次點擊開始新的動畫,而前一個仍然繼續。我會建議使用畫布並將圖片製作爲位圖。 Snake谷歌示例應用程序是動畫多個圖像並添加更多內容的一個很好的示例。 – Whitney

+0

對畫布不太瞭解,但我會嘗試。感謝你們對我的幫助。我會嘗試一下這個例子。 – ArmsOP