Activity转场动画遇到的问题
2017-05-31 16:09
991 查看
前言
对于Activity的转场动画,Google官方也提供了相应的Api,供开发者简单实现Activity之间切换的动画效果.添加动画效果也不难,但是最近开发中添加的切换动画效果却都不生效,究其一般之后是解决了,但想想也需要做个小总结,对于这些常用点的细节得把握好,那怎能少了总结记录.Ⅰ. Activity转场动画(overridePendingTransition)
下面这个Api是经常用来实现Activity之间切换的动画效果的,对其应该都不陌生。overridePendingTransition(enterAnim, exitAnim);
在最近的开发中,我就是用这个Api来实现Activity间动画切换的效果,但是却不生效,下面是主要的实现代码.运行之后,切换动画效果却都不生效.
//启动Activity public void onStartActivity(){ Intent intent = new Intent(getActivity(),UpgradeActivity.class); mActivity.overridePendingTransition(R.anim.activity_zoom_enter_in, R.anim.activity_zoom_exit_out); mActivity.startActivity(intent); }
public void onCancel(View v) { UpgradeActivity.this.overridePendingTransition(R.anim.activity_zoom_enter_in,R.anim.activity_zoom_exit_out); finish(); } @Override public void onBackPressed() { super.onBackPressed(); UpgradeActivity.this.overridePendingTransition (R.anim.activity_zoom_enter_in,R.anim.activity_zoom_exit_out); }
对照了之前写过的 overridePendingTransition 切换代码,原来overridePendingTransition 这个Api,还是有些细节得注意:
1、必须在 StartActivity() 或 finish() 之后立即调用;
2、而且在 2.1 以上版本有效;
3、手机设置-显示-动画,要开启状态.
到这里,应该知道上面的动画为什么不生效咯,是提前调用了 overridePendingTransition.
Ⅱ. Activity转场动画(ActivityOptions)
实现Activity之间的动画切换效果的方式有很多种,V4包里有 ActivityOptionsCompat 这个类,同样可以用其实现,下面是这个类里主要的静态方法.ActivityOptionsCompat.makeSceneTransitionAnimation(); ActivityOptionsCompat.makeThumbnailScaleUpAnimation() ActivityOptionsCompat.makeCustomAnimation() ActivityOptionsCompat.makeScaleUpAnimation() ActivityOptionsCompat.makeClipRevealAnimation()
在使用这个类的过程中还是遇到点问题,关闭页面的时候,调用ActivityCompat.finishAfterTransition方法,并没有动画切换的效果,可能跟系统版本这些有问题吧,毕竟ActivityOptions类的出现就是为了兼容Activity之间的转场动画,那么也没继续去探讨了,结束的时候用overridePendingTransition进行操作关闭,下面是大致的实现代码:
//启动Activity public void onStartActivity(){ Intent intent = new Intent(getActivity(), UpgradeActivity.class); ActivityOptionsCompat compat = ActivityOptionsCompat.makeCustomAnimation(mActivity,R.anim.activity_zoom_enter_in, R.anim.activity_zoom_exit_out); ActivityCompat.startActivity(mActivity,intent,compat.toBundle()); }
public void onCancel(View view){ //ActivityCompat.finishAfterTransition(this); finish(); UpgradeActivity.this.overridePendingTransition(R.anim.activity_zoom_enter_in,R.anim.activity_zoom_exit_out); } @Override public void onBackPressed() { super.onBackPressed(); //ActivityCompat.finishAfterTransition(this); UpgradeActivity.this.overridePendingTransition (R.anim.activity_zoom_enter_in,R.anim.activity_zoom_exit_out); }
Ⅲ. 写写总结,烦躁的心才能够静下来
相关文章推荐
- ActivityOptionsCompat.makeSceneTransitionAnimation 转场使用及遇到的问题
- 关于Activity的转场动画失效问题
- 关于activity转场动画makeSceneTransitionAnimation没效果的问题的解决办法
- fragment与Activity交互时常遇到的问题小结
- 实现Activity间的共享控件转场动画
- 解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题
- 打开Activity页面时,转场动画,打开和退出动画,兼容所有Android系统版本的处理办法
- ubuntu14下整合eclipse和javah生成jni头文件遇到无法访问android.app.Activity 找不到android.app.Activity的类文件问题的解决方案
- 遇到的问题:framework中定制四色键,但按键时无反应,报Calling startActivity() from outside of an Activity context requires
- overridePendingTransition设定两个activity之间的转场动画没有效果,但不报错! (大神帮帮我吧,代码如下,谢谢)
- Activity跳转时进入和退出动画不显示问题
- Android 使用友盟分享SDK,分享到QQ成功后,遇到app被销毁后,回到此分享界面无法正常点击界面问题。--连QQ都忘记处理的activity状态恢复问题
- 遇到问题----Android----ActivityManager: Error: Activity class {xx/xx.MainActivity} does not exist
- Android5.0之Activity的转场动画
- 安卓开发小技巧---如何去掉Activity的转场动画
- Android ActivityGroup和TabActivity搭配使用及遇到的一些问题
- activity进出场动画以及动画失效问题
- 用startActivityForResult 所遇到的一个问题,返回时不执行onActivityResult
- android Design : Activity转场动画——ActivityOptions
- Activity 转场动画踩坑