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):

<?xml version="1.0" encoding="utf-8"?>   

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

<?xml version="1.0" encoding="utf-8"?>   

3.设置过场():

<?xml version="1.0" encoding="utf-8"?>    

 

 

更多相关文章

  1. Qt for Android(安卓)- JNI
  2. android矢量动画
  3. Android(安卓)2.2的开发语言
  4. 基于XML的android property animation
  5. 自定义BaseActivity
  6. Android(安卓)launcher 桌面抽屉切换动画
  7. 关于AndroidManifest.xml中activity标签
  8. android 动画分析
  9. 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用

随机推荐

  1. Java正则表达式提取字符
  2. Map集合的使用
  3. Java错误:线程“main”中的异常java.lang.
  4. 使用android nfc api写NFC tag信息
  5. 如何使用swig定义和传递ByteBuffer?
  6. 孔维滢201771010110《面向对象程序设计(ja
  7. 用javascript 禁止右键 禁止复制 禁止粘
  8. 《Java就业培训教程》_张孝祥_书内源码_0
  9. 如何注册Delphi8?不要java版的!
  10. 研究生快毕业了。。学的是嵌入式,之后想走