文档章节

android Tween动画 (二)

kiy
 kiy
发布于 2014/04/14 10:39
字数 557
阅读 15
收藏 0

插值器

首先要了解为什么需要插值器,因为在补间动画中,我们一般只定义关键帧(首帧或尾帧),然后由系统自动生成中间帧,生成中间帧的这个过程可以成为“插值”。插值器定义了动画变化的速率,提供不同的函数定义变化值相对于时间的变化规则,可以定义各种各样的非线性变化函数,比如加速、减速等。下面是几种常见的插值器:

Interpolator对象 资源ID 功能作用
AccelerateDecelerateInterpolator @android :anim/accelerate_decelerate_interpolator 先加速再减速
AccelerateInterpolator @android :anim/accelerate_interpolator 加速
AnticipateInterpolator @android :anim/anticipate_interpolator 先回退一小步然后加速前进
AnticipateOvershootInterpolator @android :anim/anticipate_overshoot_interpolator 在上一个基础上超出终点一小步再回到终点
BounceInterpolator @android :anim/bounce_interpolator 最后阶段弹球效果
CycleInterpolator @android :anim/cycle_interpolator 周期运动
DecelerateInterpolator @android :anim/decelerate_interpolator 减速
LinearInterpolator @android :anim/linear_interpolator 匀速
OvershootInterpolator @android :anim/overshoot_interpolator 快速到达终点并超出一小步最后回到终点

插值器使用法:

<set android:interpolator="@android :anim/accelerate_interpolator">
...
</set>

个性化插值器:

如果系统提供的插值器不能满足需要,可以通过修改插值器的属性优化,比如修改AnticipateInterpolator的加速速率,调整CycleInterpolator的循环次数等。

常见的插值器可调整的属性:

<accelerateDecelerateInterpolator> 无

<accelerateInterpolator> android:factor 浮点值,加速速率,默认为1

<anticipateInterploator> android:tension 浮点值,起始点后退的张力、拉力数,默认为2

<anticipateOvershootInterpolator> android:tension 同上 android:extraTension 浮点值,拉力的倍数,默认为1.5(2 * 1.5)

<bounceInterpolator> 无

<cycleInterplolator> android:cycles 整数值,循环的个数,默认为1

<decelerateInterpolator> android:factor 浮点值,减速的速率,默认为1

<linearInterpolator> 无

<overshootInterpolator> 浮点值,超出终点后的张力、拉力,默认为2

使用修改插值器属性法

在/res/anim下创建一个XML文件(以修改overshootInterpolator属性为例)命名为my_overshoot_interpolator.xml

<?xml version="1.0" encoding="utf-8"?>
<overshootInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
    android:tension="7.0"/>

引用到自定义的插值器

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@anim/my_overshoot_interpolator"
    .../>

自定义插值器

如果以上的修改系统插值器属性仍无法满足需要,可以自定义插值器。


© 著作权归作者所有

共有 人打赏支持
kiy

kiy

粉丝 0
博文 11
码字总数 4068
作品 0
宁波
私信 提问
android动画简介

android中动画分为2种: Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画; Frame Animation:顺序播放事先做好的图像,是一种画面转换...

长平狐
2013/12/25
169
0
Android游戏开发之Tween动画的实现(三十二)

Android游戏开发之Tween动画的实现 雨松MOMO原创文章如转载,请注明:转载自雨松MOMO的博客原文地址:http://blog.csdn.net/xys289187120/article/details/6747877 今天和大伙讨论一下Android...

彭博
2012/03/09
395
0
Android游戏开发之Tween动画的实现(三十二)

Android游戏开发之Tween动画的实现 雨松MOMO原创文章如转载,请注明:转载自雨松MOMO的博客原文地址:http://blog.csdn.net/xys289187120/article/details/6747877 今天和大伙讨论一下Android...

晨曦之光
2012/03/07
549
0
Android animation 学习

关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式: 1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画...

所属暮雪
2014/05/26
0
0
Android Animation学习笔记 (zhuan)

关于动画的实现,Android提供了Animation,在Android SDK介绍了2种Animation模式: 1. Tween Animation:通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果,即是一种渐变动画...

迷途d书童
2012/03/26
74
0

没有更多内容

加载失败,请刷新页面

加载更多

centos操作时区

变更时区不需要重启 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 同步时间 ntpdate asia.pool.ntp.org...

果树啊
4分钟前
0
0
图解ZooKeeper的典型应用场景

zookeeper在很多框架中都有应用,例如:Dubbo,Hadoop,Kafka等,但典型的用法也就几种,掌握了这几种用法,再看zookeeper在相关框架中的应用就很轻松,下一篇文章将会详细介绍zookeeper在d...

Java填坑路
17分钟前
1
0
Hadoop之MapReduce理论篇

1. Writable序列化 序列化就是把内存中的对象,转换成字节序列 (或其他数据传输协议) 以便于存储 (持久化) 和网络传输。 反序列化就是将收到字节序列 (或其他数据传输协议) 或者是硬盘的持久...

飞鱼说编程
19分钟前
1
0
Java使用原生的HttpURLConnection发送http请求

/** * 发送http请求 * @param message 发送的内容 * @param snedUrl 请求的url * @return */public static String sendRequest(String message, String snedUrl) { log.e......

骑羊放狼灬
21分钟前
0
0
Java四种线程池两篇文章节选总结

Executor 可 以 创 建 3 种 类 型 的 ThreadPoolExecutor 线 程 池: 1. FixedThreadPool 创建固定长度的线程池,每次提交任务创建一个线程,直到达到线程池的最大数量,线程池的大小不再变化...

亭子happy
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部