2

ViewPager のような遷移で startActivityを実行したい。つまり、アクティビティ A がアクティビティ B をある側から別の側にプッシュします。これを読んでトランジションを実装しようとしましたが、ViewPager とは似ていません。

slide_up1.xml

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

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

</set>

slide_up2.xml

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


    <translate 
        android:fromXDelta="0%p" android:toXDelta="0%p" 
        android:fromYDelta="100%p" android:toYDelta="0%p" 
        android:duration="1000" android:startOffset="0"/>

    </set>

あれを呼べ。

overridePendingTransition(R.animator.slide_up1, R.animator.slide_up2);

編集:

私の場合の解決策。

slide_up1.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
         >
        <translate android:fromXDelta="0%" android:toXDelta="0%"
          android:fromYDelta="100%" android:toYDelta="0%"
         android:duration="1000"/>
       </set>

slide_up2.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
         >
      <translate
       android:fromXDelta="0%" android:toXDelta="0%"
       android:fromYDelta="0%" android:toYDelta="-100%"
       android:duration="1000" />
    </set>
4

1 に答える 1

7

XMLをこれに変更してみてください

アニメーション1

<set xmlns:android="http://schemas.android.com/apk/res/android"
         android:shareInterpolator="false">
        <translate android:fromXDelta="-100%" android:toXDelta="0%"
          android:fromYDelta="0%" android:toYDelta="0%"
         android:duration="1000"/>
       </set>

とアニメーション2

<set xmlns:android="http://schemas.android.com/apk/res/android"
         android:shareInterpolator="false">
      <translate
       android:fromXDelta="0%" android:toXDelta="100%"
       android:fromYDelta="0%" android:toYDelta="0%"
       android:duration="1000" />
    </set>

これは右から左です

その後、このような質問のコードに使用するように、保留中の遷移をオーバーライドして呼び出すことができます

overridePendingTransition(R.anim.animation1, R.anim.animation2);
于 2012-11-13T09:56:45.723 に答える