2012-01-26 28 views
6

所以這是我的XML動畫我使用Android的動畫來旋轉的ImageView,但動作很連貫

<?xml version="1.0" encoding="utf-8"?> 
<rotate 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="0" 
    android:toDegrees="360" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="3000" 
    android:repeatCount="infinite" 
    android:interpolator="@android:anim/linear_interpolator" /> 

我將其應用到的ImageView作爲旋轉圖像的裝置。但是這場運動非常不穩定。每次圖像旋轉時,它都會跳過兩個相距180度的旋轉點。我看不出有什麼理由爲什麼會發生這種情況,有沒有人遇到過這個難題並找到了解決辦法?

+0

嘗試從0度到359度。 – Noah

+0

Did not make any difference:/ –

+1

您是在模擬器還是在真實設備上嘗試?應該在中高端設備上順利進行。 –

回答

0

嘗試設置不同的插補器。僅供參考,在android中創建動畫時使用的默認插補器不是線性插值器,而是AccelerateDecelerateInterpolator

+0

我需要一個平滑的線性旋轉。我正在爲一個轉輪製作動畫 –

+0

哦,忘了說,我試過了,它也沒有工作,或者 –

+0

你是否可以將旋轉效果與其他效果一起使用? (即移動效果或其他?因爲這肯定會成爲問題)。 – asenovm

0

我不知道你爲什麼沒有得到正確的結果。這對我的作品

您可以使用內置的android.R.anim.linear_interpolator從動畫XML文件

android:interpolator="@android:anim/linear_interpolator". 

或者你可以在你的項目,例如創建自己的XML文件插值它命名爲

RES /動畫/ linear_interpolator.xml:

<?xml version="1.0" encoding="utf-8"?> 
<linearInterpolator xmlns:android="http://schemas.android.com/apk/res/android" /> 

並添加到您的動畫XML:

android:interpolator="@anim/linear_interpolator" 

,並使用

android:toDegrees="360" 

android:toDegrees="359" 

爲360和0度相同

+0

您是否解決了您的問題? – Sameer

-1

嘗試這使可繪製一個XML文件,並把你的繪製有代碼如下,命名此文件my_progress_indeterminate.xml:

<?xml version="1.0" encoding="utf-8"?><animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" 
android:drawable="@drawable/your_rotating_image" 
android:pivotX="50%" 
android:pivotY="50%" /> 

很抱歉,但你有把它放在進度條像這樣很簡單,如果圖像是靜態的相同圖像視圖不需要爲此做任何不同的編碼只是這樣寫你的佈局XML文件:

<ProgressBar android:indeterminateDrawable="@drawable/my_progress_indeterminate" android:layout_height="100dp" android:layout_width="100dp"></ProgressBar> 
+0

如果你需要一個imageview,或者只是一個動畫ID在你的視圖上運行,該怎麼辦? – desgraci

0

仿真器始終是波濤洶涌。嘗試在設備中調試它。加速旋轉,如果沒有。

0

如果這種輪換非常重要,我想這是你的用戶界面非常重要的一部分。

在這種情況下,您應該對簡單的OpenGL實現感興趣,它可以幫助您解決問題。我建議使用http://www.andengine.org/ - 簡單易用。

AndEngineExamples你可以找到很好的代碼示例,它甚至是太多了!