覆盖android中的挂起转换

时间:2014-11-10 09:26:47

标签: android

我有两项活动..活动A和活动B.

当我从活动A开始活动B.我希望活动A对其位置和动画是静态的,仅显示活动B.我如何使用overridingPendingTransition实现此目的?

当点击按钮时,从ActivityA调用以下代码:

活动A:

public void onClick(View v) {
        super.onClick(v);
         if (v.getId() == R.id.button) {
            Intent intent = new Intent();
            intent.setClass(getApplicationContext(), MyProfileActivity.class);
            startActivity(intent);
            overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);
        }

活动A也随活动B滑动。 如何停止活动A的动画并单独启用活动B的动画?

slide_out_up xml如下:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false" >

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

    <alpha
        android:duration="400"
        android:fromAlpha="1"
        android:toAlpha="0" />

</set>

slide_in_up:

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

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

    <alpha
        android:duration="400"
        android:fromAlpha="0"
        android:toAlpha="1" />

</set>

2 个答案:

答案 0 :(得分:7)

最简单的方法是为第二个参数传递0,而不是R.anim.slide_out_up。但是,这通常会导致活动A显示为活动B后面的黑屏,因此作为一种解决方法,您可以提供任何无效的动画 - 例如翻译从0%到0%。

答案 1 :(得分:1)

需要使用它。

slide_in_left.xml

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

<translate
    android:duration="400"
    android:fromXDelta="-100%"
    android:toXDelta="0%" />

<alpha
    android:duration="400"
    android:fromAlpha="0.0"
    android:toAlpha="1.0" />

</set>

slide_in_right.xml

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

<translate
    android:duration="400"
    android:fromXDelta="100%"
    android:toXDelta="0%" />

<alpha
    android:duration="400"
    android:fromAlpha="0.0"
    android:toAlpha="1.0" />

</set>