Activity转场动画遇到的问题
来源:互联网 发布:好老师淘宝店金蛇狂舞 编辑:程序博客网 时间:2024/06/05 09:54
前言
对于Activity的转场动画,Google官方也提供了相应的Api,供开发者简单实现Activity之间切换的动画效果.添加动画效果也不难,但是最近开发中添加的切换动画效果却都不生效,究其一般之后是解决了,但想想也需要做个小总结,对于这些常用点的细节得把握好,那怎能少了总结记录.
Ⅰ. Activity转场动画(overridePendingTransition)
下面这个Api是经常用来实现Activity之间切换的动画效果的,对其应该都不陌生。
overridePendingTransition(enterAnim, exitAnim);
在最近的开发中,我就是用这个Api来实现Activity间动画切换的效果,但是却不生效,下面是主要的实现代码.运行之后,切换动画效果却都不生效.
//启动Activitypublic 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(); }@Overridepublic 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进行操作关闭,下面是大致的实现代码:
//启动Activitypublic 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); }@Overridepublic void onBackPressed() { super.onBackPressed(); //ActivityCompat.finishAfterTransition(this); UpgradeActivity.this.overridePendingTransition (R.anim.activity_zoom_enter_in,R.anim.activity_zoom_exit_out);}
Ⅲ. 写写总结,烦躁的心才能够静下来
阅读全文
0 0
- Activity转场动画遇到的问题
- 关于Activity的转场动画失效问题
- Android Activity和Fragment的转场动画
- Android Activity和Fragment的转场动画
- Android Activity和Fragment的转场动画
- Android Activity和Fragment的转场动画
- Android Activity和Fragment的转场动画
- Android Activity和Fragment的转场动画
- Android Activity和Fragment的转场动画
- Android Activity和Fragment的转场动画
- Android5.0之Activity的转场动画
- Android Activity和Fragment的转场动画
- Android5.0之Activity的转场动画
- Activity与Fragment的转场动画.
- Android Activity和Fragment的转场动画
- Android5.0之Activity的转场动画
- Android5.0之Activity的转场动画
- Android5.0之Activity的转场动画
- C++学习(26)
- OpenCV学习笔记(11)createTrackbar使用方法及步骤
- 微信开发(四):获取access_token和微信服务器IP
- win10,python2.7,mysql-connector-python 报错 mysql.connector.errors.InternalError: Unread result found
- HTML5风格指南与编码标准
- Activity转场动画遇到的问题
- android 几轮面试小谈
- flask之jinja2中使用字典、列表、方法等变量
- ThinkPHP查询数据的时候,自动把字段名的大写切换成小写的问题!
- 设置手机联系人样式的城市列表
- 103-使用广播的 UDP 回射客户端
- 一道很简单的题。toString()失误好几次
- 关于字符串指针不可修改的问题
- Sublime 快捷键