用android简单进出动画

时间:2013-01-26 19:44:56

标签: java android android-animation

我对android上的动画有一些疑问:

首先,是否有人能够很好地链接到解释Android动画的网站?只有XML动画,我不想使用java代码动画..

第二个问题:我想简单地将活动从左到右动画,从左到右,但是我无法实现这个简单的动画。

我的XML文件如下所示:

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

    <translate
        android:duration="@android:integer/config_shortAnimTime"
        android:fromXDelta="-100%p"
        android:toXDelta="0" />

    <alpha
        android:duration="@android:integer/config_shortAnimTime"
        android:fromAlpha="1.0"
        android:toAlpha="1.0" />

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

    <translate
        android:duration="@android:integer/config_shortAnimTime"
        android:fromXDelta="0"
        android:toXDelta="100%p" />

    <alpha
        android:duration="@android:integer/config_shortAnimTime"
        android:fromAlpha="1.0"
        android:toAlpha="1.0" />

</set>

在我的代码中,我在overridePendingTransition(R.anim.push_left_in,R.anim.push_right_out);

之后使用:overridePendingTransition(R.anim.push_right_out,R.anim.push_left_in);super.finiah();

2 个答案:

答案 0 :(得分:2)

这就是我设置简单淡入淡出动画的方法

这是我的incoming.xml

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

<alpha
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromAlpha="1.0"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:toAlpha="0.0" />

这是我的outgoing.xml

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

<alpha
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromAlpha="0.0"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:toAlpha="1.0" />

这就是我打电话的方式在我的活动中设置动画

 Intent i = new Intent(this, ABCActivity.class);
                startActivity(i);
                ModeSelectActivity.this.overridePendingTransition(
                    R.anim.outgoing, R.anim.incoming);

另外,请务必覆盖反向动画的onBackPressed()

@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();

    ModeSelectActivity.this.overridePendingTransition(R.anim.outgoing,
            R.anim.incoming);
}

答案 1 :(得分:0)

此页面上有许多动画:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3.5_r1/frameworks/base/core/res/res/anim/

您可以查看slide_in_left.xml,slide_in_right.xml,slide_out_left.xml和slide_out_right.xml。

您可以使用overridePendingTransition()来使用这些过渡。