Activity转场动画设置

在公司项目时,遇到一个问题,在此总结一下
当隐式启动一个Activity的时候,会有一个默认的启动动画,是个缩放效果,就造成每次别的应用启动音乐时,会有明显的动画效果,与设计不符,就需要去除掉默认的动画,查阅了相关的转场动画,在此记录一下

转场动画的设置方式

  • 代码设置
    通过overridePendingTransition方法进行设置,代码如下
    先创建两个动画的xml文件
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate 
        android:duration="2000"
        android:fromXDelta="0"
        android:toXDelta="-100%p"/>
 
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate 
        android:duration="2000"
        android:fromXDelta="100%p"
        android:toXDelta="0"/>
 
</set>

保存的位置在res-anim文件夹下
在代码中引用:

overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);

需要注意的地方

  1. 它只在android2.0以及以上版本上适用
  2. 它必需紧挨着startActivity()或者finish()函数之后调用”
    使用这种方式就有一个问题,如果别的引用通过隐式调用启动我们的应用,没办法使用这种方式,就需要用到下面的方式,使用主题的方式
  • xml文件设置主题的方式
<style name="AppTheme" parent="@style/Theme.AppCompat.NoActionBar">
        <item name="android:windowAnimationStyle">@style/Animation</item>
    </style>

    <style name="Animation">
        <item name="android:activityOpenEnterAnimation">@null</item>
        <item name="android:activityOpenExitAnimation">@null</item>
        <item name="android:activityCloseEnterAnimation">@null</item>
        <item name="android:activityCloseExitAnimation">@null</item>
        <item name="android:taskOpenEnterAnimation">@null</item>
        <item name="android:taskOpenExitAnimation">@null</item>
        <item name="android:taskCloseEnterAnimation">@null</item>
        <item name="android:taskCloseExitAnimation">@null</item>
        <item name="android:taskToFrontEnterAnimation">@null</item>
        <item name="android:taskToFrontExitAnimation">@null</item>
        <item name="android:taskToBackEnterAnimation">@null</item>
        <item name="android:taskToBackExitAnimation">@null</item>
    </style>

application使用这个主题就可以,就会清除Activity的动画,当然item中你可以指定各种方式的动画
如果不想给整个app设置上面的,只想对某一个activity设置

<activity android:name=".activity_shop.ShopHomeActivity" 
    android:theme="@style/Animation"/>

可以单独的指定主题

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值