7

L 開発者プレビューに付属する新しいファンシー アニメーションを使用しようとしていますが、多くの困難があります。特に、派手なアニメーションは見られません。Explode exit トランジションを使用しようとしています。コードは次のとおりです。

public class ActivityA extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // inside your activity
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

        // set an exit transition
        getWindow().setExitTransition(new Explode());
        setContentView(R.layout.activity_a);

        // Find our button and add our click handler
        Button button = (Button)findViewById(R.id.buttonA);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Transition to activity B
                Intent intent = new Intent(ActivityA.this, ActivityB.class);
                startActivity(intent);
            }
        });
    }
}
4

3 に答える 3

13

を使用して別のアクティビティを開始する代わりにstartActivity(intent);、次のステートメントを使用します。

startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());

上記のように別のアクティビティを開始しましたが、うまくいきました。

次のようにグーグルのドキュメントのカスタムアニメーションの定義で述べられています。

ここに画像の説明を入力

于 2015-04-24T12:29:03.333 に答える
0

これを試して。

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // enable transitions
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
        setContentView(R.layout.activity_my);
    }

    public void onSomeButtonClicked(View view) {
        getWindow().setExitTransition(new Explode());
        Intent intent = new Intent(this, MyOtherActivity.class);
        startActivity(intent,
                      ActivityOptions
                          .makeSceneTransitionAnimation(this).toBundle());
    }
}

requestFeatureonCreateに_setExitTransitionstartActivity

于 2016-08-04T10:18:01.893 に答える