2011-05-26 40 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