Android activity启动关闭时滑动出现消失(并解决activity跳转时出现的短暂黑屏)

Activity在切换或者是退出的时候可以使用渐入,滑动,缩放等动态效果。使用的就是方法overridePendingTransition,可以直在Activity当中直接调用。

第一个参数为Activity进入时的动画,第二参数为Activity离开时的动画效果。此方法在startActivity()或者是finish()后调用,在切换或是退出时就会调用此动画。

 

 不过有时候overridePendingTransition 这个函数会不起作用,总结下,大概是以下几个方面的原因:

1、android系统版本2.0以下,这个没办法,想其他办法解决切换动画吧。只有在 2.1 以上版本有效

2、在ActivityGroup等的嵌入式Activity中,这个比较容易解决,用如下方法就可以了:this.getParent().overridePendingTransition 就可以解决。

3、在一个Activity的内部类中,或者匿名类中,这时候只好用handler来解决了。

4、必须在 StartActivity()  或 finish() 之后立即调用。

5、手机设置-显示-动画,要开启状态有效

 

现在要完成A打开B页面,A页面保持不动,B页面从底部滑入显示,而在B返回A页面时,A页面保持不动, B页面从顶部向下滑出消失的这个过程,需要两步:

1、需要配置2个动画XML,一个是启动动画,一个是结束动画。分别在start()和finish()两个地方调用

2、启动调用动画的时机和关闭调用动画的时机。

需要使用到的这几个参数的意思是:

fromAlpha:开始时透明度 

toAlpha: 结束时透明度 

duration:动画持续时间

public static void start(Activity activity) {
    Intent intent = new Intent(activity, SecondActivity.class);
    activity.startActivity(intent);
    activity.overridePendingTransition(R.anim.activity_anim_scenic_in, R.anim.bottom_silent);
}

public void finish() {
    super.finish();
    overridePendingTransition(R.anim.bottom_silent, R.anim.activity_anim_scenic_out);
}

需要在anim下添加两个动画文件:

1.启动动画(activity_anim_scenic_in.xml):



   

2.结束动画(activity_anim_scenic_out.xml):



   

3.设置过场():



    

 

 

你可能感兴趣的:(android,android,安卓,app,移动开发)