Activity 设置切换动画
extends://blog.csdn.net/luohaowang320/article/details/42124225 | http://blog.csdn.net/xuewater/article/details/36398803
最近写项目的时候需要用到大量的activity切换动画,于是就用了考虑到了theme中引用style来实现,但是竟然无效,很是郁闷,几经波折,找到了原因,原来是style里面设置了android:windowIsTranslucent这个属性,代码如下:
<style name="AppTranslateTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowAnimationStyle">@style/animation_translucent_translate</item>
</style>
解决办法就是,windowAnimationStyle需要继承Animation.Translucent,一般情况是继承的Animation.Activity,下面是代码:
<!-- <style name="anim_activity" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/activity_open_in_anim</item>
<item name="android:activityOpenExitAnimation">@anim/activity_open_out_anim</item>
<item name="android:activityCloseEnterAnimation">@anim/activity_close_in_anim</item>
<item name="android:activityCloseExitAnimation">@anim/activity_close_out_anim</item>
</style> -->
<style name="animation_translucent_translate" parent="@android:style/Animation.Translucent">
<item name="android:windowEnterAnimation">@anim/activity_open_in_anim</item>
<item name="android:windowExitAnimation">@anim/activity_open_out_anim</item>
</style>
问题解决。
如果还没解决,就是手机动画效果关掉了,或者手机rom问题。。
------------------------------------------------------------------------------------
设置Activity的切换动画,有两种方式:
1.使用overridePendingTransition(新Activity进入动画, 旧Activity退出动画),需要紧接在startActivity 和finish()后。
2.在manifest中配置Activity的theme。
下面着重说明第二种情况:
<style name="ThemeActivity" parent="AppBaseTheme">
<item name="android:windowAnimationStyle">@style/activityAnimatStyle</item>
</style> <style name="activityAnimatStyle" parent="@android:style/Animation.Activity"> <!-- 新Activity 进入 -->
<item name="android:activityOpenEnterAnimation">@anim/animate_right_in</item>
<!-- 旧Activity退出 -->
<item name="android:activityOpenExitAnimation">@anim/animate_old_aphla</item>
<!-- 新Activity退出 -->
<item name="android:activityCloseExitAnimation">@anim/animate_left_out</item>
<!-- 旧Activity进入 -->
<item name="android:activityCloseEnterAnimation">@anim/animate_old_aphla</item>
</style>
现在有3个Activity:A、B、C:
配置B的
这个时候 从A 启动B,会把android:activityOpenExitAnimation作用在A上,把android:activityOpenEnterAnimation作用在B上,此时从B回退到A,将使用系统默认的动画。
若从B启动C,然后从C回退到B,此时才会将android:activityCloseExitAnimation作用在C,将android:activityCloseEnterAnimation作用在B。
所以在使用manifest配置的时候,需要注意显示的target 所配置的属性,就如同overridePendingTransition一样。所以这四个属性决定的是【显示】当前Activity的时候,他的动画和与之关联的动画。
我们可以在application 节点中配置theme,那么所有的Activity的进出动画都是一致的,如果要单独配置两个Activity的交互动画,可以如下配置:
A-->B
在A的theme中,只用声明:
在B的theme中,只声明:
<!-- 新Activity 进入 -->
<item name="android:activityOpenEnterAnimation">@anim/animate_right_in</item>
<!-- 旧Activity退出 -->
<item name="android:activityOpenExitAnimation">@anim/animate_old_aphla</item>
那么从A启动B时,会执行B声明的动画,此时要显示的是B,B是主体,当从B回退到A的时候,会执行A声明的动画,此时A是主体。
此时应该很清楚这四个属性作用的时机了吧。
这里还有一点要注意,如果使用了support包,theme的parent需要继承自Theme.AppCompat ,否则会报错。
如下
在CODE上查看代码片派生到我的代码片
<style name="AppBaseTheme" parent="Theme.AppCompat.Light"> </style> <!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style> <style name="ThemeActivity" parent="AppBaseTheme">
<item name="android:windowAnimationStyle">@style/activityAnimatStyle</item>
</style> <style name="activityAnimatStyle" parent="@android:style/Animation.Activity"> <!-- 新Activity 进入 -->
<item name="android:activityOpenEnterAnimation">@anim/animate_right_in</item>
<!-- 旧Activity退出 -->
<item name="android:activityOpenExitAnimation">@anim/animate_old_aphla</item>
<!-- 新Activity退出 -->
<item name="android:activityCloseExitAnimation">@anim/animate_left_out</item>
<!-- 旧Activity进入 -->
<item name="android:activityCloseEnterAnimation">@anim/animate_old_aphla</item>
</style>
测试代码路径 http://download.csdn.net/detail/luohaowang320/8295207
Activity 设置切换动画的更多相关文章
- Activity设置切换动画时黑屏问题的解决
//当这么设置的时候.打开Acticity的时候会黑屏一下 overridePendingTransition(R.anim.activity_open,0); //改成例如以下代码 完美解决这个问题 ...
- Android的Activity屏幕切换动画-左右滑动切换
. --> 在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始 ...
- Android的Activity屏幕切换动画(一)-左右滑动切换
(国内知名Android开发论坛eoe开发者社区推荐:http://www.eoeandroid.com/) Android的Activity屏幕切换动画(一)-左右滑动切换 在Android开发过程 ...
- Android的Activity屏幕切换动画左右滑动切换
在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity ...
- Activity的切换动画
Activity在切换或者退出的时候可以自定义动画的,比如AlphaAnimation.TranslateAnimation.ScaleAnimation等自定义的动画.我们在Activity启动的时 ...
- Android Activity的切换动画(overridePendingTransition)
overridePendingTransition 1.平时Activity的切换是就是从中间弹出来,然后遮盖住之前的Activity.这种效果看到很多后就想给他换成其他的效果,如: 要显示的Acit ...
- activity添加切换动画之后出现的黑色背景问题
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> & ...
- Android Activity的切换动画
Android的Activity切换有两种方法, 第一种是用代码方式实现: Activity A跳转到Activity B,要在startActivity(intent)后面加上overridePen ...
- Android中的动画具体解释系列【4】——Activity之间切换动画
前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画.这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景--Activity之间跳转动画. 一.定义动画资源 ...
随机推荐
- 腾讯云 Linux 挂载数据盘
查看已挂载的硬盘 1) 运行fdisk -l命令查看硬盘信息. 硬盘从未进行初始化时,需要先创建文件系统, 硬盘格式化 运行mkfs.ext4 device_n ...
- Wordpress搭建社交型小游戏网站10大步骤
http://www.aliyun.com/zixun/content/2_8_196141.html ———————————————————————————————————————————————— ...
- EasyUi---searchbox 条件查询
前台UI参考代码: <script type="text/javascript" charset="utf-8"> $(function(){ /* ...
- asp.net一些面试题(转)
基础知识 什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP: 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可 ...
- Linux中显示一个文件最后几行的命令
tail -n 20 filename说明:显示filename最后20行. Linux下tail命令的使用方法.linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端 ...
- e637. 向剪切板获取和粘贴文本
This examples defines methods for getting and setting text on the system clipboard. // If a string i ...
- (转)从海康7816的ps流里获取数据h264数据
海康7816使用ps流来封装h.264数据,这里使用的解码器无法识别ps流,因此需要将h264数据从ps流里提取出来 对于ps流的规定可以参考13818-1文档 这里从7816里获取到一些数据取样 0 ...
- JVM基础知识与配置
1 怎样设置JVM内存设置 本文向大家简介一下进行JVM内存设置几种方法.安装Java开发软件时.默认安装包括两个目录,一个JDK(Java开发工具箱).一个JRE(Java执行环境,内含JVM),当 ...
- 查看CentOS的网络带宽出口
检查维护系统的时候,经常会要查看服务器的网络端口是多大的,所以需要用到Linux的一个命令. 如何查看CentOS的网络带宽出口多大?可以用下面的命令来查看. # ethtool eth0 前面是命令 ...
- chrome调试技巧--持续更新
1.开始调试:右键审查元素 2.按钮功能: 调出控制台: 切换开发环境全屏还是嵌入: 清空当前显示: 将压缩 js 文件格式化缩进规整的文件: 3.常用页面功能: 查看.编辑(双击)HTML: 查看选 ...