如何使用自定义动画启动活动?

时间:2013-10-11 11:51:01

标签: android android-animation

我编写的代码使用给定静态点(pivotX,pivotY)的动画启动活动但我想在活动开始之前更改pivotX和pivotY。我希望动画能够在我点击地图上的某个点时开始。

XML:

<scale
    android:duration="1000"
    android:fillAfter="false"
    android:fillBefore="false"
    android:fillEnabled="true"
    android:fromXScale="0.0"
    android:fromYScale="0.0"
    android:pivotX="10%p"
    android:pivotY="50%p"
    android:toXScale="1.0"
    android:toYScale="1.0" />

Activtity:

       Intent intent = new Intent(getApplicationContext(),
                    PlayerActivity.class);
            startActivity(intent);

            overridePendingTransition(R.anim.push_down_in,
                    R.anim.push_down_out);

2 个答案:

答案 0 :(得分:2)

您的动画文件似乎存在问题。请按照以下步骤操作。

将activity_push_up_in.xml放入anim文件夹: -

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromYDelta="100%p"
        android:toYDelta="0" />

</set>

现在,再次在你的anim文件夹中放入另一个xml push_up_out.xml: -

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <translate
        android:duration="500"
        android:fromYDelta="0"
        android:toYDelta="-100%p" />

</set>

现在将此代码放入您的java文件中以使用此动画启动活动: -

overridePendingTransition(R.anim.activity_push_up_in, R.anim.push_up_out);

答案 1 :(得分:0)

我认为你必须使用android:startOffset来设置动画延迟