为什么我的动画没有像预期的那样工作?

时间:2015-09-02 00:58:26

标签: android android-animation android-popupwindow

我想动画PopupWindow的出现。这是我的show.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:duration="200"
        android:fromXScale="0"
        android:fromYScale="0"
        android:toXScale="1"
        android:toYScale="0.1"
        android:pivotX="90%"
        android:pivotY="10%"
        android:interpolator="@android:interpolator/accelerate_decelerate"/>

    <scale
        android:startOffset="200"
        android:duration="600"
        android:fromXScale="1"
        android:fromYScale="0.1"
        android:toXScale="1"
        android:toYScale="1"
        android:pivotX="90%"
        android:pivotY="10%"
        android:interpolator="@android:interpolator/accelerate_decelerate"/>

</set>

和styles.xml:

<style name="popup_anim">
    <item name="@android:windowEnterAnimation">@anim/show</item>
</style>

最后:

mPopupWindow.setAnimationStyle(R.style.popup_anim);

正如您所看到的,在我的show.xml中,我定义了两个动画,它们应该由startOffset按顺序播放。他们在这方面做得很好。但是,当第二个动画开始播放时,它几乎立即停止,但其持续时间应为600毫秒。那么问题是什么?提前谢谢!

1 个答案:

答案 0 :(得分:1)

将第二个缩放动画的android:toYScale从1更改为10。

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
    android:duration="200"
    android:fromXScale="0"
    android:fromYScale="0"
    android:toXScale="1"
    android:toYScale="0.1"
    android:pivotX="90%"
    android:pivotY="10%"
    android:interpolator="@android:interpolator/accelerate_decelerate"/>
<scale
    android:startOffset="200"
    android:duration="600"
    android:fromXScale="1"
    android:toXScale="1"
    android:fromYScale="0.1"
    android:toYScale="10"
    android:pivotX="90%"
    android:pivotY="10%"
    android:interpolator="@android:interpolator/accelerate_decelerate"/</set>