Activity从屏幕底部滑出、滑入、处理黑色背景和状态栏

1、首先先写两个动画,分别时进入和退出的动画。在res/anim下创建两个文件

进入动画entry.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>

退出动画exit.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”,表示父层View的80%,是以它父层View为参照的。

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、写一个style来处理这些吧

 

然后就完美了

你可能感兴趣的:(android)