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

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

进入动画entry.xml

<?xml version="1.0" encoding="utf-8"?>
<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

<?xml version="1.0" encoding="utf-8"?>
<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来处理这些吧

 <style name="ActivityEntryAnimation" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- 去除Activity顶部黑线 -->
        <item name="android:windowContentOverlay">@null</item>
        <!-- 系统状态栏背景设置透明 -->
        <item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="lollipop">@android:color/transparent</item>
        <!-- Activity背景 -->
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <!-- 背景模糊 -->
        <!--<item name="android:backgroundDimEnabled">true</item>-->
    </style>

然后就完美了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值