0

私は開発中のAndroidアプリを持っており、別のアクティビティ内でこのメソッドを使用してアクティビティが開始されます(ボタンクリックを介して)。

private void showInfo(){
    startActivity(new Intent(this, InfoActivity.class));
    overridePendingTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom);
}

アニメーションが機能し、下から上にスライドしてアクティビティが実行されます。次に、新しいアクティビティのボタンをクリックして閉じます。コードは次のとおりです。

ImageButton info = (ImageButton) findViewById(R.id.infoButton);
    info.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            finish();
            overridePendingTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom);
        }
    });

また、ユーザーが「戻る」ボタンを押した場合の次のコード:

@Override

public void onBackPressed() {

    super.onBackPressed();

    overridePendingTransition(R.anim.slide_in_bottom, R.anim.slide_out_bottom);

}

最後に、slide_in_bottom のコード:

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

    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="100" android:startOffset="200" />

そして、slide_out_bottom:

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

    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="100" android:startOffset="200" />

問題は、新しいアクティビティが計画どおりに下からスライドインすることですが、エミュレータの戻るボタンをクリックするか、imagebutton を押してアクティビティを終了すると、戻るアクティビティが下からスライドインするのと同じように新しいアクティビティですが、上から下にスライドさせたいです。どうすればこれを達成できますか?何が間違っていますか?

4

2 に答える 2

0

トップコードからの私のインは次のとおりです。

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

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

</set>

必要に応じて変更してください。現在のコードでは、実際に位置する 0 からアニメーションを開始しています。画面の上にある -100 から開始する必要がありますが、100 は下にあります。

また、 onBackPressed では、次のように呼び出します。

// handle hardware back button
    @Override
    public void onBackPressed() {
        finish();
        overridePendingTransition(R.anim.lefttocenter, R.anim.centertoright);

    }
于 2014-01-24T11:48:59.857 に答える