appwidget动画在无限循环中

时间:2012-02-01 20:13:30

标签: android

我想在循环中的appwidget上使用动画。 我通过xml定义了我的翻译动画,并在'set'上添加了android:repeatMode =“restart”,但没有任何反应,动画运行一次然后停止。根据{{​​3}},它应该被推下来。

实施例

<set xmlns:android="http://schemas.android.com/apk/res/android" android:repeatMode="restart">
     <alpha android:fromAlpha="0" android:toAlpha="1" android:duration="2000" />
</set>

1 个答案:

答案 0 :(得分:4)

由于您只使用1个动画,因此无需使用<set>。集用于多个动画。 试试这个:

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="0"
    android:toAlpha="1"
    android:duration="2000" />

并在您的活动中:

Animation newsAnim= AnimationUtils.loadAnimation(this, R.anim.news_animation);
newsAnim.reset();  // reset initialization state
newsAnim.setRepeatMode(Animation.RESTART);
newsAnim.setRepeatCount(Animation.INFINITE); // Or a number of times
TextView animatedText = (TextView) findViewById(R.id.lbl_animated);
animatedText.startAnimation(newsAnim);

这将调用您的动画,设置所需的时间/功能。 我注意到使用set循环动画并不像这样容易。

编辑:如果您需要明确使用<set>,那么您可以执行以下操作:

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="0%" android:toXDelta="0%"
        android:fromYDelta="100%" android:toYDelta="-100%"
        android:duration="15000" android:zAdjustment="bottom"
        android:repeatMode="restart"
        android:repeatCount="-1" />

    <scale
        android:fromXScale="4" android:toXScale="1"
        android:fromYScale="3" android:toYScale="1"
        android:pivotX="50%" android:pivotY="50%"
        android:duration="15000"
        android:repeatMode="restart"
        android:repeatCount="-1" />
</set>

注意所有动画的持续时间。如果你想要一致的动画,保持它们相同..

希望这会有所帮助。 你真的,

Nyllian