2011-05-26 82 views
5

我非常接近獲得「硬幣翻轉」動畫的效果,但由於當前動畫系統中的限制(錯誤?) - 我無法找到顯示硬幣翻轉的兩面。顯示使用Android標準動畫翻轉硬幣的兩面

例如,我有以下動畫.XML:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"  
    android:shareInterpolator="false">  
     <scale 
      android:repeatCount="17" 
      android:repeatMode="reverse" 
       android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
      android:fromXScale="1.0" android:toXScale="1.0" 
      android:fromYScale="1.0" android:toYScale="0.0" 
      android:pivotX="50%"  android:pivotY="50%" 
      android:fillEnabled="true" 
      android:fillAfter="true" 
      android:duration="60" 
     />  
     <scale 
      android:repeatCount="1" 
      android:repeatMode="reverse" 
       android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
      android:fromXScale="1.0" android:toXScale="2.0" 
      android:fromYScale="1.0" android:toYScale="2.0" 
      android:pivotX="50%"  android:pivotY="50%" 
      android:fillEnabled="true" 
      android:fillAfter="true" 
      android:duration="800" 
     />  
     <translate 
      android:repeatCount="1" 
      android:repeatMode="reverse" 
      android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
      android:fromXDelta="0%" 
      android:toXDelta="0%" 
      android:fromYDelta="0%" 
      android:toYDelta="-150%" 
      android:fillEnabled="true" 
      android:fillAfter="true" 
      android:duration="800" 
     /> 
</set> 

這種「假貨」翻動通過縮放在Y軸的硬幣和扭轉它在一個循環動畫。結合這一點,有一個規模可以使整體動畫更大,同時還可以將其整體上下翻轉。但它只能表現硬幣的一面。

我試着讓這兩個動畫在硬幣的每一面同時運行,但由於REPEATCOUNT在應用於AnimationSet時無法工作,所以無法找到錯開它們的方法。否則,我可以在一個anim之後(在另一個anim之前)引入某種延遲,使它們交替,從而給出硬幣翻轉的幻覺。

有誰知道任何方式我可以調整這個來得到想要的結果?

我曾經想過放棄並做一個基於幀的動畫(預渲染翻轉幀),但它看起來你不能混合幀的&吐溫動畫,所以我會失去翻轉「高度」和「距離」效應。

(我還有一個問題,當涉及到的硬幣落地 - 例如最後的結果是隨機的,但我希望我能在實際的結果在最後切換)

提前感謝!

回答

1

這段代碼演示了所以纔出現了ImageView的越來越靠近屏幕的相同步驟 http://www.inter-fuser.com/2009/08/android-animations-3d-flip.html

+0

謝謝你的Jaydeep。之前我曾經遇到過這篇文章,但對於我想要做的事情來說似乎有點矯枉過正。另外,我不確定我如何將它與其他效果(縮放和移動)結合起來。但是,它看起來是唯一真正的方法... – 2011-05-26 11:37:38

2

我自己找這樣的事情,即使在圖像的縮放。

我把你的動畫和這個解決方案結合起來,做你想要的東西,它相當輕量級,錯過了對多個視圖的需求。

https://github.com/Lojko/Booty/blob/master/src/game/booty/BootyGameActivity.java

原路段的改變了位置:http://www.jasoncavett.com/2011/05/changing-images-during-an-android-animation/#comments

見FlipCoin類,以及如何它使用的,我有一個動畫已經存在(在由鏈接詳細的創建方式相同)

+0

你在答案中提到的鏈接已經死亡。 – 2014-06-30 07:14:39

+1

我有代碼躺在GitHub上,我會盡快通過鏈接更新帖子。 – Lojko 2014-07-04 09:42:44

+0

我發現了原始鏈接的變化網頁,如果有人碰巧對未來感興趣! – Lojko 2015-01-11 21:52:01