插值器Interpolator

2024-06-18 02:18
文章标签 插值 interpolator

本文主要是介绍插值器Interpolator,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文地址:http://blog.163.com/yimigao@126/blog/static/67156050201111342557670/


插值器

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

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"
    .../>

自定义插值器

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

这篇关于插值器Interpolator的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071030

相关文章

动画插值器Interpolation

插值器定义: 用于修改一个动画过程中的速率,可以定义各种各样的线性或非线性变化函数,比如匀速.加速.减速等。 说白了(也就是通俗的说):其实就是一个 时间的函数,用来 定义了动画的变化律 系统的插值器: 在Android中所有的插值器都是Interpolator 的子类,下面是几种插值器: AccelerateDecelerateInterolator  先加速后减速,

图像插值算法参考博客

1. 最近邻插值法(nearest_neighbor) - wancy - 博客园 (cnblogs.com)https://www.cnblogs.com/wancy/p/15068519.html 2. 双线性插值法(bilinear interpolation) - wancy - 博客园 (cnblogs.com)https://www.cnblogs.com/wancy/p/15212

图片识别 中图片压缩和放大算法,最近邻插值,双线性插值

由于在神经网络中,输入的张量大小必须相同,但是图片大小不一定相同,我们需要对图片进行压缩和放大。     图像的缩放很好理解,就是图像的放大和缩小。传统的绘画工具中,有一种叫做“放大尺”的绘画工具,画家常用它来放大图画。当然,在计算机上,我们不 再需要用放大尺去放大或缩小图像了,把这个工作交给程序来完成就可以了。下面就来讲讲计算机怎么来放大缩小图象;在本文中,我们所说的图像都是指点阵图, 也

Unity中的曲线插值CatmullRom

链接:Unity中的曲线插值CatmullRom ps:博客从typecho换成jekyll后,文章复制到简书来因为图片链接原因变得麻烦了。- -! 正文 之前写了个插件,有个需要曲线插值的功能。给定一些点的位置,物体成一条平滑曲线依次通过这些点。 Bezier曲线是在Unity里比较常用的,但是不适合这里的需求。因为Bezier无法通过所有的点,它需要有另外的点来构造切线。如下图: 图1

Python优化算法20——精英反向学习与二次插值改进的黏菌算法(ISMA)

科研里面优化算法都用的多,尤其是各种动物园里面的智能仿生优化算法,但是目前都是MATLAB的代码多,python几乎没有什么包,这次把优化算法系列的代码都从底层手写开始。 需要看以前的优化算法文章可以参考:Python优化算法_阡之尘埃的博客-CSDN博客 算法背景 之前写过黏菌优化算法的文章,现在有很多新的黏菌优化算法,都是进行了一些改进。本次带来的是混沌精英黏菌算法,当然也会和普

fpga图像处理实战-双三次插值算法

双三次插值算法         双三次插值(Bicubic Interpolation)是一种常用的图像处理算法,用于在图像缩放、旋转等操作中进行像素的插值。相比于简单的双线性插值,双三次插值能提供更高的图像质量,尤其是在放大图像时,可以更好地保留细节。 基本原理         双三次插值通过考虑周围16个像素点(一个4x4的邻域)的灰度值来计算插值点的值。其核心思想是利用三次多项式进行插

自定义插值器

前言 相信大家都用过补间动画(Tween Animation),那么对插值器(Interpolator)应该也不陌生,虽然SDK已经提供了一些Interpolator的实现类,但是如果你想实现一些特定效果,那就得自己自定义了 介绍 先简单介绍一下Interpolator,他会根据类型的不同,选择不同的算法计算出在补间动画期间所需要动态插入帧的密度和位置,Interpolator负责控制动

3、三次样条(cubic spline)插值

三次样条(cubic spline)插值 - 知乎

超分之最近邻插值、线性插值、双线性插值、双三次插值原理

文章目录 插值与图像插值不同的插值方法最近邻域插值(Nearest Neighbor Interpolation)线性插值 (Linear Interpolation)双线性插值 (Bilinear Interpolation)双三次插值 (Bicubic Interpolation) 插值与图像插值 插值:利用已知数据去预测位置数据。图像插值:给定一个像素点,根据它周围像素

先从路径优化开始学习FastPlanner之B样条曲线平滑路径(一):从拉格朗日插值到B样条曲线

参考B站视频学习 注:我会列出学习他人的博客,但我不涉及具体推导,原理讲解,旨在于理解必须概念后写代码出效果。 给若干点如何获得一条平滑的曲线? 两个方法插值、拟合 插值要经过给定点,拟合不用经过。 经典插值方法:拉格朗日插值法和牛顿插值法。 区别: 拉格朗日插值法 优点 简单易懂: 拉格朗日插值法公式简单直观,易于理解和实现。无需求导: 拉格朗日插值法不需要对函数进行求导,只需知