2013-05-10 273 views
1

我遇到了問題,我無法找到可行的解決方案。 所以,這是我的問題。我必須做一個ImageView自己旋轉到90度的方向變化。 我做到了,圖像實際上旋轉得非常棒,但是當動畫結束時,圖像會自動重置到之前的位置。Android旋轉動畫

這裏是我用來旋轉圖像的代碼:

Matrix matrix = mImageView.getImageMatrix(); 
        RectF dst = new RectF(); 
        matrix.mapRect(dst, new RectF(mImageView.getDrawable().getBounds())); 
        mAnimation = new RotateAnimation(0.0f, -90.0f, Animation.RELATIVE_TO_SELF, 0.5f, 
          Animation.RELATIVE_TO_SELF, 0.5f); 
        mAnimation.setDuration(5000); 
        mImageView.startAnimation(mAnimation); 
        mImageView.setImageMatrix(matrix); 
        mCurrentOrientation = 1; 

回答

1

您可以使用此動畫堅持它已經完成之後:

mAnimation.setFillEnabled(true); 
mAnimation.setFillAfter(true); 
+0

謝謝:)我知道,有一些簡單的像這樣:P – Arkde 2013-05-13 06:19:33

+0

沒問題,很高興提供幫助。 – 2013-05-13 08:47:27

0

一件事你可以做的是設置ImageView的一個已經旋轉的圖像的版本,然後從-90到0度旋轉。這將與你已經使用的API協同工作。如果你打兩個電話,一個正確的後它會正常工作,沒有口吃。

另一種選擇是使用更高版本的API。對象動畫器動畫不會將視圖返回到原始位置。更多關於這裏。

How to rotate a drawable by ObjectAnimator?

代碼很簡單,但是這並不薑餅工作。