几个简单动画属性使用

记得之前又一次偶然,Activity的跳转方向就不统一了,后边随便搜索发现了一个方法:overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);

上次使用完没有做记录。几天在用一个小的动画有发现了相关的东西。很多属性没有用过不懂,这里摘抄别人的记录下。

动画之translate(位移动画):

这个动画结合上述overridePendingTransition(R.anim.tran_pre_in, R.anim.tran_pre_out);方法以及style样式

 <style name="PopWindowAnimBottom" parent="@android:style/Animation">
        <item name="android:windowEnterAnimation">@anim/push_bottom_in</item>
        <item name="android:windowExitAnimation">@anim/push_bottom_out</item>
    </style>

这样就可以做些简单动画实现。

通过网络查找知道:Translate动画就是定义一个开始的位置和一个结束位置,定义移动时间,然后就能自动产生移动动画。Android的translate移动方向有 横向(X) 竖向(Y), 左右滑动使用了横向移动效果,对于竖向(Y)的位置如下:

盗图两个以供参考:


这个图是设置Activity 从下边进入上边退出动画的示例。

从下往上进入:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromYDelta="100%p"
    android:toYDelta="0%p"
    android:duration="1000">
</translate>

从中间往上退出:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator"
    android:fromYDelta="0%p"
    android:toYDelta="-100%p"
    android:duration="1000">
</translate>

图二:


从右边进入:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="100%p"
    android:fromYDelta="0"
    android:toXDelta="0"
    android:toYDelta="0"
    android:duration="300"
     >
</translate>

从右边退出:

<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="100%p"
    android:toYDelta="0"
    android:duration="300"
     >
</translate>

下面记录一些常用属性:

@android:anim/accelerate_interpolator: 越来越快

@android:anim/decelerate_interpolator:越来越慢

@android:anim/accelerate_decelerate_interpolator:先快后慢

@android:anim/anticipate_interpolator: 先后退一小步然后向前加速

@android:anim/overshoot_interpolator:快速到达终点超出一小步然后回到终点

@android:anim/anticipate_overshoot_interpolator:到达终点超出一小步然后回到终点

@android:anim/bounce_interpolator:到达终点产生弹球效果,弹几下回到终点

@android:anim/linear_interpolator:均匀速度。

android:duration: 动画运行时间,定义在多次时间(ms)内完成动画

android:startOffset: 延迟一定时间后运行动画

fromXDelta: X轴方向开始位置,可以是%,也可以是具体的像素 具体见图

toXDelta:   X轴方向结束位置,可以是%,也可以是具体的像素

fromYDelta: Y轴方向开始位置,可以是%,也可以是具体的像素

toYDelta:    Y轴方向结束位置,可以是%,也可以是具体的像素

在使用过程中我们要是能熟练使用这些属性也就能作出一些比较好的效果来:比如使用加速器:@android:anim/bounce_interpolator 可以产生弹球落地时的效果。

此处简单记录方便后续学习使用。


参考文献:http://www.cnblogs.com/bavariama/archive/2013/01/29/2881225.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章