2014-07-11 44 views
1

我試圖做一個動畫師有點像iPhone的coverflow,但更簡單一點。 現在我試圖做一個旋轉,然後使圖像全屏但沒有任何事情發生。Android animatorset無法正常工作

  ImageView i = (ImageView) FindViewById(args.Position); 

      var disp = WindowManager.DefaultDisplay; 
      var height = disp.Height; 
      var width = disp.Width; 


      ObjectAnimator anim = ObjectAnimator.OfInt(i, "rotationY", 0, 180); 
      ObjectAnimator scaleX = ObjectAnimator.OfInt(i, "scaleX", width); 
      ObjectAnimator scaleY = ObjectAnimator.OfInt(i, "scaleY", height); 
      AnimatorSet set = new AnimatorSet(); 
      set.Play(anim).With(scaleX).With(scaleY); 

代碼有什麼問題?爲什麼沒有發生?

回答

8

你需要撥打Start()AnimatorSet才能真正開始動畫。

Play()方法實際上並沒有發揮它指定的動畫設定應發揮,並創建一個AnimatorSet.Builder,您可以使用用於設置額外的限制(如您的With())的animation-。其次,你的ObjectAnimators都在尋找整數屬性,但是rotationscale屬性需要浮點數。

您應該改用ObjectAnimator.OfFloat()

+0

Okej謝謝!但它仍然不工作:(還有什麼其他的我錯過了嗎? –

+0

我已經更新了我的答案 - 你也應該使用'OfFloat()'而不是'OfInt()'。 –