1

我对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();

4

2 回答 2

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" />

这是我的传出.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);
}
于 2013-01-26T20:07:49.170 回答
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() 一起使用。

于 2013-01-26T19:54:21.580 回答