平常从一个 Activity A打开另个一个Activity B ,一般 Activity B 都是从屏幕右边出来。而关闭 Activity B 返回Activity A ,则 Activity B 会从左边沿向右边沿消失。有时候,想让新的 Activity 从屏幕的底部弹出,或者屏幕的中间向弹出,或者想让Activity从屏幕的中间收回。本文章讲的是这中需要效果。

实现原理

主要是 Activity 类的 overridePendingTransition(int enterAnim, int exitAnim) 方法的调用,在 res/anim目录下创建所需的动画文件,然后在 overridePendingTransition(int enterAnim, int exitAnim) 方法中调用动画即可。

效果图

show_activity_anim

具体代码

在 res/anim 目录下新建你需要的动画文件,例如,我需要新的 Activity 从顶部向上弹出,然后从顶部向底部收回。那么我创建了activity_open_from_bottom_to_top.xml 文件,activity_close_from_top_to_bottom.xml 文件和 activity_keep_status.xml 文件。如下

activity_open_from_bottom_to_top.xml

android:duration="1500"

android:fromYDelta="100%p"

android:toYDelta="0"/>

android:fromAlpha="0.2"

android:toAlpha="1.0"

android:duration ="1500"/>

activity_close_from_top_to_bottom.xml

android:duration="1500"

android:fromYDelta="25"

android:toYDelta="100%p"/>

android:fromAlpha="1.0"

android:toAlpha="0.2"

android:duration ="1500"/>

activity_keep_status.xml

android:duration="1500"

android:fromYDelta="0"

android:toYDelta="10%p"/>

android:fromAlpha="1.0"

android:toAlpha="0.8"

android:duration ="1500"/>

然后在Activity的代码中,用 overridePendingTransition(int enterAnim, int exitAnim) 方法调用这三个文件。

在启动 Activity 的地方:

public static void startMe(Activity activity, String title, ArrayList imageList, int position) {

Intent intent = new Intent(activity, PhotoViewGroupActivity.class);

intent.putExtra(TAG_IMAGE_LIST, imageList);

intent.putExtra(TAG_POSITION, position);

intent.putExtra(TAG_TITLE, title);

activity.startActivity(intent);

activity.overridePendingTransition(R.anim.activity_photo_center_to_edge, R.anim.activity_photo_keep_status);

}

在退出 Activity 的地方:

@Override

public void finish() {

super.finish();

overridePendingTransition(0, R.anim.activity_photo_edge_to_center);

}

关于overridePendingTransition(enterAnim,exitAnim)方法

关于此方法,我们可以点进去看一下源码的注释怎么说。

/**

* Call immediately after one of the flavors of {@link #startActivity(Intent)}

* or {@link #finish} to specify an explicit transition animation to

* perform next.

*

*

As of {@link android.os.Build.VERSION_CODES#JELLY_BEAN} an alternative

* to using this with starting activities is to supply the desired animation

* information through a {@link ActivityOptions} bundle to

* {@link #startActivity(Intent, Bundle)} or a related function. This allows

* you to specify a custom animation even when starting an activity from

* outside the context of the current top activity.

*

* @param enterAnim A resource ID of the animation resource to use for

* the incoming activity. Use 0 for no animation.

* @param exitAnim A resource ID of the animation resource to use for

* the outgoing activity. Use 0 for no animation.

*/

public void overridePendingTransition(int enterAnim, int exitAnim) {

try {

ActivityManager.getService().overridePendingTransition(

mToken, getPackageName(), enterAnim, exitAnim);

} catch (RemoteException e) {

}

}

根据此处的说明,第一个参数 enterAnim 是指即将要到来的 Activity 的动画资源文件,第二个参数exitAnim是即将要离开 Activity 的动画资源文件。两个参数都可以传入0作为无动画。

关于

android 电视关闭动画,Activity 展开和关闭动画相关推荐

  1. android仿微信的activity平滑水平切换动画,android仿微信的activity平滑水平切换动画...

    大家好,下面我们来探讨一下微信界面跳转的动画,简单,大方,不失华丽:overridePendingTransition(android.R.anim.slide_in_left,android.R.a ...

  2. android仿微信的activity平滑水平切换动画,Android实现平滑翻动效果

    本文实例为大家分享了Android实现平滑翻动效果的具体代码,供大家参考,具体内容如下 效果 1.activity加implements implements GestureDetector.OnGe ...

  3. android仿微信的activity平滑水平切换动画,Android实现简单底部导航栏 Android仿微信滑动切换效果...

    Android实现简单底部导航栏 Android仿微信滑动切换效果 发布时间:2020-10-09 19:48:00 来源:脚本之家 阅读:96 作者:丶白泽 Android仿微信滑动切换最终实现效果 ...

  4. android 页面过渡动画,Activity过渡动画的实现方法

    1.使用overridePendingTransition方法实现Activity跳转动画 overridePendingTransition方法是Activity中提供的Activity跳转动画方法 ...

  5. android activity的跳转动画,实现activity跳转动画的若干种方式

    第一种: (使用overridePendingTransition方法实现Activity跳转动画) 在Activity中代码如下 /** * 点击按钮实现跳转逻辑 */ button1.setOnC ...

  6. Android 优化 透明Activity展示loading关闭时闪烁

    1. 背景 之前设计了一个支付SDK,因为需要展示loading以及支付页面,也为了不需要用户传入Activity引用,设计了一个透明得Activity,但是发现在实践得时候,关闭这个Activity ...

  7. android activty动画,Activity动画效果

    [android]代码库网上查找的个人认为是最全的效果,在此记录下,apidemo里也有: package com.iteye.androidtoast; import java.util.Array ...

  8. Android手动控制软键盘的开启和关闭,判断软键盘是否显示;

    工具类,拿走就能用: import android.annotation.TargetApi; import android.app.Activity; import android.content. ...

  9. 安全模式或开发者模式动画程序关闭动画时长缩放,动画最好不要执行

    安全模式或开发者模式动画程序关闭动画时长缩放,动画最好不要执行. 执行动画的结果:循环动画会闪烁,缩放动画不会执行. 解决:在安全模式或开发者模式动画程序关闭动画时长缩放时,不要执行动画. 1.Pow ...

最新文章

  1. GCF_000238955.2 Maylandia zebra 斑马拟丽鱼 Scaffold
  2. 报名 | 智进未来:AI在医疗健康领域的应用、挑战及发展趋势
  3. python学习手册视频教程-Python学习精品教程,视频书籍打包下载
  4. DataGrid 中的特殊应用
  5. HDU - 5335 Walk Out(bfs+路径输出+贪心)
  6. Jsoup V的幕后秘密:优化的技巧和窍门
  7. PHP 从结果集中取得一行作为关联数组:
  8. 2018 Multi-University Training Contest 1 Balanced Sequence(贪心)
  9. 三十岁前不要去在乎的18件事
  10. 唯品会:在 Flink 容器化与平台化上的建设实践
  11. 「解密」浪潮云海InCloud Sphere如何霸榜SPECvirt?
  12. 《MPLS在Cisco IOS上的配置》一2.3 配置命令参考
  13. struts2学到屎挫死-深入Struts2(2)--Action
  14. Linux安装WIFI无线网卡驱动
  15. k8s高可用二进制部署
  16. python图形编程复选按钮和单选按钮详细说明_python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例...
  17. 【转载】《Real-Time Rendering 3rd》 提炼总结】(二) 第二章 · 图形渲染管线 The Graphics Rendering Pipeline
  18. mysql dbcp 配置文件_数据库连接池DBCP使用方式
  19. 双官能交联剂点击试剂DBCO-PEG4-DBCO
  20. 记录一次oracle中count特别慢的解决方案

热门文章

  1. 【nginx+lua高性能web应用开发(二):开发评论模块(ssi+mysql)】
  2. (转)Fiddler教程(Web调试工具)
  3. 反思深度思考:不无脑的行动 有脑的持久行动
  4. mave工程中的一个类调用另一个聚合工程的一个类_信息系统管理工程师备考分享(材料重点精炼)——第一章信息化和信息系统(4)...
  5. php u6536编码转,详谈PHP编码转换问题
  6. Mybatis的jdbc参数设置
  7. cae计算机仿真分析技术,厉害了 揭秘汽车设计中CAE仿真技术
  8. python获取键盘输入_python如何获取键盘输入
  9. unity 关闭自己脚本_unity中使用代码控制脚本的开启和关闭 enabled
  10. 【Zabbix】yum方式安装zabbix