Android Activity 平滑水平切换动画
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android Activity 平滑水平切换动画,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2957字,纯文字阅读大概需要5分钟。
内容图文
![Android Activity 平滑水平切换动画](/upload/InfoBanner/zyjiaocheng/1084/a42f35bf9e3744578ae888851542b84b.jpg)
在Android当中 设置activity的动画 需要复写 android:windowAnimationStyle这个属性
我们自定义一个动画样式来继承 @android:style/Animation(Base style for animations. This style specifies no animations)这个样式是Android操作系统提供的 没用动画的样式 我们定义其中的4个属性还设置我们想要的效果
android:activityOpenEnterAnimation 一个activity创建进入的效果
android:activityOpenExitAnimation 一个activity还没有finish()下退出效果, 比如有俩个activity A,B 首先启动A 然后再启动B 那么A还没有finish() 这A的退出效果
android:activityCloseEnterAnimation 表示上一个activity返回进入效果 比如有俩个activity A,B B退出后A进入的效果
activityCloseExitAnimation 表示的是activity finish()之后的效果 比如有俩个activity A,B B退出后会被finish() 那么B的退出效果在这定义
下面给出程序中需要用到的主题:
<!--动画左右切换的theme-->
<style name="LeftRight" parent="@android:style/Theme.Translucent.NoTitleBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowAnimationStyle">@style/AnimationActivity</item>
</style>
<!--
1:第一个表示新的activity创建进入效果
2:第2个表示activity还没有finish()下退出效果
3:第3个表示上一个activity返回进入效果
4:第4个表示的是activity finish()之后退出效果
-->
<style name="AnimationActivity" mce_bogus="1" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/in_from_right</item>
<item name="android:activityOpenExitAnimation">@anim/out_to_left</item>
<item name="android:activityCloseEnterAnimation">@anim/in_from_left</item>
<item name="android:activityCloseExitAnimation">@anim/out_to_right</item>
</style>
下面给出4个动画文件:
1:in_from_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="100%p"
android:toXDelta="0%p"
android:duration="500"/>
</set>
2:in_from_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="-100%p"
android:toXDelta="0%p"
android:duration="500"/>
</set>
3:out_from_right
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0%p"
android:toXDelta="100%p"
android:duration="500"/>
</set>
4:out_from_left
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0%p"
android:toXDelta="-100%p"
android:duration="500"/>
</set>
最后给出相应AndroidManifast文件中是如何配置的:
<activity
android:name="xxxx"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:theme="@style/LeftRight"
android:windowSoftInputMode="adjustPan|stateHidden">
</activity>
自己使用的时候发现的问题:刚开始的时候动画写好以后,运行程序发现动画时有时无,不知道什么原因,但是在其他Activity上面验证是好的,我了个擦,后来发现我在那个有问题的Activity中复写了父类的onWindowFouceChanged方法,在里面计算了某个View距离顶部的距离,最后将这部分代码拿出来,放到其他地方进行计算,动画就好了,坑爹啊!
在这个把这个问题记录一下~
原文:http://blog.csdn.net/ly985557461/article/details/44678451
内容总结
以上是互联网集市为您收集整理的Android Activity 平滑水平切换动画全部内容,希望文章能够帮你解决Android Activity 平滑水平切换动画所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。