如何解决windowIsTranslucent影响安卓activity切换动画画

转载(12)
添加全局变量
protected int activityCloseEnterAnimation;
protected int activityCloseExitAnimation;
在OnCreate里面添加如下代码:
TypedArray activityStyle = getTheme().obtainStyledAttributes(new int[] {android.R.attr.windowAnimationStyle});
int windowAnimationStyleResId = activityStyle.getResourceId(0, 0);
activityStyle.recycle();
activityStyle = getTheme().obtainStyledAttributes(windowAnimationStyleResId, new int[] {android.R.attr.activityCloseEnterAnimation, android.R.attr.activityCloseExitAnimation});
activityCloseEnterAnimation = activityStyle.getResourceId(0, 0);
activityCloseExitAnimation = activityStyle.getResourceId(1, 0);
activityStyle.recycle();
在你的程序finish之前,需要调用如下代码
public void finish() {
super.finish();
overridePendingTransition(activityCloseEnterAnimation, activityCloseExitAnimation);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7915次
排名:千里之外
原创:19篇
转载:13篇
(1)(2)(1)(4)(11)(12)(2)项目问题(1)
最近使用SwipeBackLayout做滑动返回,遇到了不大不小的问题就是Activity的启动方向都是从底部弹出本来感觉很好看,但是也很好奇怎么突然启动方向从底部弹出了呢。
做了一下测试&item name="android:windowIsTranslucent"&false&/item&
就可以正常从右边画出了,但是这时在侧滑返回就会发现底部时黑色的,于是我决定要改下这个问题。
手动设置Activity的启动动画于是在style中设置但是发现没起作用因为时这样写的
&style name="animation_translucent_translate" parent="@android:style/Animation.Activity"&
&item name="@android:activityOpenEnterAnimation"&@anim/activity_right_in&/item&
&item name="@android:activityCloseExitAnimation"&@anim/activity_right_out&/item&
通过overridePendingTransition设置启动动画可以
startActivity(fromClass, toClass, null)
this.overridePendingTransition(R.anim.activity_right_in, 0)
这样当时就解决了,但是越想越不对为什么在style中设置不可以呢,后来查了下资料发现可以继承Animation.Translucent
&style name="animation_translucent_translate" parent="@android:style/Animation.Translucent"&
&item name="@android:activityOpenEnterAnimation"&@anim/activity_right_in&/item&
&item name="@android:activityCloseExitAnimation"&@anim/activity_right_out&/item&
心想这样可以了吧,但是运行之后发现不是从底部滑出了,但也不是从右边滑出,这可怎么办所有的方法都用完了,最后发现在第一个Activity中设置
&item name="android:windowIsTranslucent"&false&/item&
这样就可以正常使用了,因为底部的第一个Activity本来就不需要滑动返回。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:9058次
排名:千里之外
原创:20篇
评论:19条
(3)(2)(2)(3)(2)(8)Activity切换动画无效(android:windowIsTranslucent)影响(android:windowAnimationStyle)
最近写项目的时候需要用到大量的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&
解决办法就是,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&
问题解决。
好顶赞!!!
本分类共有文章1篇,更多信息详见
& 2012 - 2016 &
&All Rights Reserved. &
/*爱悠闲图+*/
var cpro_id = "u1888441";今天看啥 热点:
解决Activity启动黑屏及设置android:windowIsTranslucent不兼容activity切换动画问题
之前在做 APP 的时候不太关注这个问题,因为自己在使用其他 APP 的时候也会在应用启动的初始有一个黑屏闪过后才会出现应用的欢迎页。直到最近开发过程中发现自己在欢迎页启动的线程由于请求和处理的数据量过大而,导致欢迎页在出现之前界面上会有一个短暂的白色闪屏停留,当然白色闪屏的停留是因为 application 的主题样式android:theme=@style/AppTheme 使用了 Theme.Light 题导致的,Light 样式的 windowBackground、colorBackground、colorForeground 等属性的值均为 light 也就是白色偏亮,所以才会出现白色闪屏。下面是我的 APP 出现白色闪屏时样式引用的代码:
简单的修改后,闪屏颜色为黑色,代码如下:
代码修改后引用的样式为黑色主题,但欢迎页仍然会有黑色闪屏短暂的停留。继续进行修改,设置透明属性为 true,代码如下:
经过这次的修改之后黑色闪屏现象消失了,最终达到了自己理想的效果。最后,经过查阅资料发现已经有人总结和处理过这类问题了,并且给出了优缺点的分析,我在这里以我的理解对其进行引用。
原来避免黑色闪屏有2种方法,分别为:1.为 Theme 设置背景图;2.为 Theme 设置透明属性。显然我采用的是第二种方式,先分别看看这2种方式所引用的代码:
上面的2种 Theme 中,为 Theme 设置背景图后程序在启动的时候,会首先显示这张图,避免发生黑屏;为 Theme 设置透明属性,程序启动后不会黑屏而是透明,等到界面初始化完成后才一次性显示出来。下面是两种方式的优缺点:
为 Theme 设置背景图 给人程序启动快的感觉,界面先显示背景图,然后再刷新其他界面控件,刷新不同步。
为 Theme 设置透明属性 给人程序启动慢的感觉,界面会一次性刷出来,刷新同步。
但是问题有出现了,原先在配置了activity的切换动画效果,设置完android:windowIsTranslucent=true之后切换动画失效了。暂时我也不知道android系统的theme属性之间关系的错综复杂,继承来继承去的。。。为什么会出现这种问题,不过还好无意间找到了解决办法
配置style继承的parent为
然后让apptheme的
android:windowAnimationStyle为上面的style
如果想在所有的activity切换时候使用该theme,可以配置application,也可以单个单个配置在activity里面。
当然首页退出的时候可以单独配置MainActivity的退出动画和进入动画
MainActivity的退出和进入动画可以引用系统提供的,但是好像在style里面配置引用不了有些系统的anim,
在文件夹sdkplatformsandroid-20data es下面,activity_open_enter.xml,activity_close_exit.xml可以直接拷贝到项目中,修改
单独写一个进入或者退出,然后其它默认。。。。。。。
多动手,测试,如果有错误的地方麻烦留言一起交流,谢谢
复制去Google翻译翻译结果 机器人:windowAnimationStyle
相关搜索:
相关阅读:
相关频道:
Android教程最近更新}

我要回帖

更多关于 去掉activity切换动画 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信