【问题标题】:Showing both sides of a coin being flipped using Android standard animation使用 Android 标准动画显示硬币的两面翻转
【发布时间】:2011-09-02 10:00:51
【问题描述】:

我非常接近让“硬币翻转”动画工作,但由于当前动画系统中的限制(错误?) - 我无法找到一种方法来显示硬币在空中翻转的两面.

例如,我有以下动画 .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 时不起作用,我无法找到错开它们的方法。否则我可以在一个动画之后(和另一个动画之前)引入某种延迟,以便它们交替出现,给人一种抛硬币的错觉。

有谁知道我可以通过什么方式调整它以获得所需的结果?

我曾想过放弃并制作基于帧的动画(将翻转预渲染为帧),但您似乎无法混合使用 Frame 和 Tween 动画,所以我会失去翻转“高度”和“距离”效果。

(我有另一个关于硬币落地的问题 - 例如最终结果是随机的,但我希望我能在最后切换实际结果?)

提前致谢!

【问题讨论】:

    标签: android animation


    【解决方案1】:

    我最近想为一个项目实现这样的东西。我终于想出了一个解决方案,结果已经足够好了。希望它可以帮助其他试图实现相同动画的人。

    我将结果上传为gist on GitHub

    动画预览click here

    有关完整的 android studio 项目,请访问我们的 CoinToss 存储库。

    【讨论】:

      【解决方案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 类及其使用方式,我已有一个动画(创建方式与链接中详述的相同)

      【讨论】:

      • 您在答案中提到的链接已失效。
      • 我在 GitHub 上有代码,我会尽快更新帖子并附上它的链接。
      • 我找到了原链接改过的网页,如果以后有谁有兴趣的话!
      【解决方案3】:

      【讨论】:

      • 感谢杰迪普。我以前看过那篇文章,但对于我想做的事情来说似乎有点矫枉过正。另外,我不确定如何将它与其他效果(缩放和移动)结合起来。然而,看起来这是唯一真正的方法......
      猜你喜欢
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 2015-07-18
      • 2018-12-30
      • 2018-07-27
      • 1970-01-01
      相关资源
      最近更新 更多