我非常接近获得“硬币翻转”动画的效果,但由于当前动画系统中的限制(错误?) - 我无法找到显示硬币翻转的两面。显示使用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之前)引入某种延迟,使它们交替,从而给出硬币翻转的幻觉。
有谁知道任何方式我可以调整这个来得到想要的结果?
我曾经想过放弃并做一个基于帧的动画(预渲染翻转帧),但它看起来你不能混合帧的&吐温动画,所以我会失去翻转“高度”和“距离”效应。
(我还有一个问题,当涉及到的硬币落地 - 例如最后的结果是随机的,但我希望我能在实际的结果在最后切换)
提前感谢!
谢谢你的Jaydeep。之前我曾经遇到过这篇文章,但对于我想要做的事情来说似乎有点矫枉过正。另外,我不确定我如何将它与其他效果(缩放和移动)结合起来。但是,它看起来是唯一真正的方法... – 2011-05-26 11:37:38