3

私はアンドロイドアプリを構築しています.1つのアクティビティから別のアクティビティへのカスタムトランジションを実現したいと考えています. 最初のアクティビティのボタンを押すと、サイズが縮小され、画面の隅の 1 つに移動し、2 番目のアクティビティが呼び出されます。もちろん、最初のアクティビティのサイズ変更と移動中に、2 番目のアクティビティが表示され始めます (この間、下に黒い画面を表示したくないということです)。誰かがこの種の経験を持っていますか?また、API 3.0+ 用にアプリを構築しているため、新しい関数とメソッドを使用しても問題ないことに注意してください。どうも!

4

1 に答える 1

14

これには、単純なスケールアニメーションを使用できるはずです。2番目のアクティビティでは、次のようなことができます。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    overridePendingTransition(R.anim.scale_from_corner, R.anim.scale_to_corner);
}

アニメーションの場合は次のようになります。

scale_to_corner.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromYScale="1.0" android:toYScale="0"
        android:fromXScale="1.0" android:toXScale="0" 
        android:duration="500"/>
</set>

およびscale_from_corner.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromYScale="0" android:toYScale="1.0"
        android:fromXScale="0" android:toXScale="1.0" 
        android:duration="500" android:pivotX="100%"
        android:pivotY="100%" />
</set>

これにより、最初のアクティビティが左上隅に縮小し、2番目のアクティビティが右下隅から拡大します。それらが成長または縮小するポイントを変更したい場合は、pivotXとpivotYを変更するだけです。

于 2012-06-28T19:47:07.777 に答える