web-dev-qa-db-ja.com

アクティビティを下から上に表示

activityを使用して、下から上へのアニメーションを1つのIntentから別のアニメーションに表示したい。

以下のような例があります

Intent i2 = new Intent(main.this, test.class);
startActivity(i2);

アニメーションは下から上へ。

45
Nikhil

Res/anim/slide_in_up.xmlでアニメーションを定義します。

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:fromYDelta="100%p" Android:toYDelta="0%p"
    Android:duration="@Android:integer/config_longAnimTime"/>

およびres/anim/slide_out_up.xmlの別のファイル:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:fromYDelta="0%p" Android:toYDelta="-100%p"
    Android:duration="@Android:integer/config_longAnimTime"/>

次に、startActivityを呼び出すためにこれらを適用します。

Intent i2 = new Intent(main.this, test.class);
startActivity(i2);
overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up );

Androidアニメーション ここ の紹介があり、これがさらに役立ちます。

131
Mark Allison

私はグーグルでスライドを切り替えてここに着陸しましたが、マークの答えは不完全です。

アクティビティの仕上げを上書きする

@Override
public void finish() {
    super.finish();
    overridePendingTransition(R.anim.slide_from_top,R.anim.slide_in_top);
}

finish()

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
                finishAfterTransition();
            }else finish();

slide_from_top.xml

<translate xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:fromYDelta="-100%p" Android:toYDelta="0%p"
Android:duration="@Android:integer/config_shortAnimTime"/>

slide_in_top.xml

<translate xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:fromYDelta="0%p" Android:toYDelta="100%p"
Android:duration="@Android:integer/config_shortAnimTime"/>
2
Aklesh Singh

1つ目:アクティビティのレイアウトをアニメーション化1、2つ目:このアニメーションの最後に、2つ目のアクティビティを開始し、コンテンツレイアウトをアニメーション化する

TranslateAnimation(int fromX、int toX、int fromY、int toY)を使用します;

1
Houcine