Activity画面下部からスライド、スライド、黒い背景とステータスバーの処理

5603 ワード

1、まず2つのアニメーションを書いて、それぞれの時にアニメーションに入りますと退出します.res/animで2つのファイルを作成
アニメーションに入ります.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">

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

アニメーションを終了します.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">

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

拡張:
これらの属性には%とpを加えることもできます.例えば、Android:toXDelta=「100%」は、自身の100%を表し、つまりView自身の位置から始まります.Android:toXDelta="80%p"は、親ビューの80%を表し、親ビューを参照します.
2、ページジャンプと終了ロジック
注意:overridePendingTransition(R.anim.entry,0);この方法はstartActivityの後に呼び出さなければならない.そうしないと役に立たない.
//     
Intent intent = new Intent(MainActivity.this,Test1Activity.class);
startActivity(intent);
overridePendingTransition(R.anim.entry,0);

注意:overridePendingTransitionメソッドはfinishメソッドの後に呼び出されます.
public class Test1Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test1);
    }

//  finish  
    @Override
    public void finish() {
        super.finish();
        overridePendingTransition(0,R.anim.exit);
    }
}

ここまで進むと基本的な効果は出てきますが、どう見ても変ですね.Activityが出る前のActivityは黒で、そのActionBarもステータスバーも存在します.
3、スタイルを書いて処理しましょう
 

そして完璧に