android666APP开发经验总结

android activity动画(淡入淡出)

2019-02-21  本文已影响341人  android_haihong

今天记录下Activity一个淡入淡出的切换效果
大概效果就是去除了activity的切换动画,感觉很简洁,个人比较喜欢这个效果

直接上效果:


video2gif_20190222_175450.gif

先简单说几个属性
android:interpolator:主要作用是可以控制动画的变化速率,比如去实现一种非线性运动的动画效果。那么什么叫做非线性运动的动画效果呢?就是说动画改变的速率不是一成不变的,像加速运动以及减速运动都属于非线性运动。
android:fromAlpha:属性为动画起始时透明度
android:toAlpha:属性为动画结束时透明度
android:duration:动画持续时间,单位毫秒

<1>在res文件夹下建立anim文件夹,建立anim_fade_in.xml和anim_fade_out.xml两个动画资源

<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:fromAlpha="0.0" android:toAlpha="1.0"
    android:duration="300" />
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator"
    android:fromXDelta="0" android:toXDelta="0"
    android:duration="300" />

<2>在values文件夹下的styles.xml中的resources标签内自定义style样式

<!--activity 淡入淡出-->
<style name="AnimActivity" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowAnimationStyle">@style/anim_fade</item>
    <item name="android:windowNoTitle">true</item>
</style>

 <style name="anim_fade" parent="@android:style/Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/anim_fade_in</item>
    <item name="android:activityOpenExitAnimation">@anim/anim_fade_out</item>
    <item name="android:activityCloseEnterAnimation">@anim/anim_fade_in</item>
    <item name="android:activityCloseExitAnimation">@anim/anim_fade_out</item>
</style>

<3>最后在AndroidManifest.xml中的application添加android:theme="@style/AnimActivity"就可以了,在application标签中添加则为全局效果,也可以再某个activity添加,则为单独效果

其实网上也有用overridePendingTransition()方法的,我个人不是很喜欢,这个还得写到BaseActivty中做一个全局效果,个人喜欢吧.
简单说下:

overridePendingTransition(int enterAnim,int exitAnim)
//enterAnim:进入时的动画       exitAnim:退出时的动画

注:这个方法必须放在startActivity和finish之后才能调用

上一篇下一篇

猜你喜欢

热点阅读