Android ValueAnimator 在重复期间暂停

2024-03-13

因此,我使用 ValueAnimator 将火柴人的四肢以无限循环的方式从一个位置移动到另一个位置,或者至少直到动画停止。我的问题是,当动画师重复时,我会稍微停顿,就好像动画滞后一样,但只有当动画重复时才会发生这种情况。我还有其他动画只发生一次,并且运行得非常流畅,而且它们每次都有同样多的计算,所以我目前认为这是 ValueAnimator 的问题。

过去我能够找到其他人抱怨这个问题,但我找不到任何人找到解决方案。你们知道这是否是 Android ValueAnimator 的真正问题吗?如果是这样,您知道有什么解决方案吗?如果没有,你们知道为什么这种情况会发生在动画中的那个地方吗?我真的被这个困住了。

我的 ValueAnimator 设置代码是这样的:

    mFigureAnimator = ValueAnimator.ofFloat(0f, 1f);
    mFigureAnimator.setInterpolator(new LinearInterpolator());
    mFigureAnimator.setDuration(1000);
    mFigureAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
      public void onAnimationUpdate(ValueAnimator animation) {
        Float delta = (Float)animation.getAnimatedValue();

        // Set the drawn locations based on the animated time and the start/end

        invalidate();

      }
    });
    mFigureAnimator.setRepeatCount(ValueAnimator.INFINITE);
    mFigureAnimator.setRepeatMode(ValueAnimator.RESTART);
    mFigureAnimator.start();

对于动画,您可以将插值器配置为线性插值器在动画文件中:

android:interpolator="@android:anim/linear_interpolator"

对于动画师来说,线性插值器也适合我,我有一个旋转动画师,进行 360 度旋转并无限重复:

public class RotateAnimator {
    private float mDegrees;
    private ObjectAnimator mAnim;

    private RotateAnimator() {
        mAnim = ObjectAnimator.ofFloat(this, "degrees", 360);
        mAnim.setInterpolator(new LinearInterpolator());
        mAnim.setRepeatCount(ValueAnimator.INFINITE);
        mAnim.setRepeatMode(ValueAnimator.INFINITE);
        mAnim.setEvaluator(new FloatEvaluator());
        mAnim.setDuration(2000);
        mAnim.start();
    }

    public float getDegrees() {
        return mDegrees;
    }

    public void setDegrees(float degrees) {
        this.mDegrees = degrees;
        // invalidate the view so it can redraw itself
        invalidate();
    }

}

这样就解决了我的问题,如果您找不到其他解决方案,希望这可以帮助您,祝您好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android ValueAnimator 在重复期间暂停 的相关文章

随机推荐

  • REQUEST_URI 与显式路径和文件名不匹配

    真的很困惑 因为形式和语法看起来都很好 REQUEST URI 的 RewriteCond 与显式路径和文件名不匹配 隔离时 REQUEST FILENAME 的 RewriteCond 匹配得很好 我已经使用 phpinfo 验证了 RE
  • 尽管同时实现了 hashCode() 和 equals(),HashSet 仍添加了重复条目

    我有以下课程 class Point double x y constructor and other functions here public boolean equals Point p if p null return false
  • Node.js 存档器需要通过 glob 排除文件类型的语法

    使用 archiver js 适用于 Node js 我需要从递归 多子目录 存档中排除图像 这是我的代码 const zip archiver zip zlib level 9 const output await fs createWr
  • Python 脚本 - 连接到 SSH 并运行命令

    我已经知道有 Python 的 ssh 模块 但这不是我正在寻找的 我想要的是一个 python 脚本来执行以下操作 gt 连接到 用户输入 SSH 主机 gt 使用凭据 由用户提供 连接 gt 在 SSH 主机上运行命令 telnet 到
  • 使用 ST25 android SDK 进行 NFC 标签密码保护

    我正在与ST25 标签 更具体地说是 type5 标签 ST25DV64K 适用于 Android 的 ST25 SDK 有一些有趣的示例和教程 我仍然在努力使用文档末尾提供的代码示例here https www st com resour
  • MySQL - 如何使用 LIKE 搜索精确的单词匹配?

    我使用此查询来选择数据 mysql query SELECT FROM products WHERE product name LIKE search 唯一的问题是 它有时会选择比我想要的更多的东西 例如 我想选择产品 BLA 但我的查询也
  • Internet Explorer 11 与 Asp.Net 4.0 的会话问题

    我遇到一个奇怪的问题 我在 asp net 4 0 中开发了一个网站 它在所有浏览器上都能正常工作 因为我也在处理会话 因此用户必须登录才能使用该网站 在 Internet Explorer 11 上 当您访问网站 url 时 它会在 ur
  • 快速for循环与睡眠

    我有一个 Swift 4 ios 应用程序 按下按钮时会显示随机消息和照片 这工作正常 但我想创建一个无限循环来在按下按钮时显示随机消息 照片 我尝试了多种方法来实现这一目标 但没有一个有效 在主线程完成之前 标签和图像视图似乎不会更新 下
  • 让 ScrollView 与自动布局和情节提要一起使用

    我正在尝试为我想要构建的应用程序制作一个非常简单的布局 但我似乎正在努力使用 ScrollView 并通过 Storyboard 让它工作 基本上我正在尝试构建以下内容 我已经使用几个教程完成了约束 但它要么不滚动 要么看起来错误 有什么建
  • 与 React 内联自定义 `::-webkit-scrollbar`

    我怎样才能申请 webkit scrollbar在 React 中使用内联样式将伪元素添加到组件 你不能写pseudo内联选择器 需要在css中添加 参考这个link https developer mozilla org en US do
  • 关闭时 SqlDependency 订阅不会从 dm_qn_subscriptions 中删除

    My SQL依赖关系工作正常 当应用程序退出时 代理队列和服务会正确删除 我确实执行SqlDependency Stop 按照终止进程之前的建议 但我注意到由SQL依赖关系应用程序关闭后 仍保留在表 sys dm qn subscripti
  • watir-webdriver 黑色屏幕截图

    我正在使用 watir webdriver 浏览我的网站并在不同的浏览器中抓取屏幕截图 有时 在 IE 中截取的屏幕截图尺寸正确 但颜色全黑 同时运行的 Firefox 测试看起来不错 browser driver save screens
  • Javascript window.open 不工作

    好的 我正在尝试登录推特 这段代码中没有打开窗口 收到警报的响应不为空 并且是指向登录屏幕的链接 有任何想法吗 var url twitter login php var con createPHPRequest con open POST
  • 参数和列表哪个更好

    我当前的代码如下 它是作为代理暴露给客户端的WCF服务方法 public UnifiedDTO GetAllCardTitle string trainSymbolOrCarLocation DateTime startDate DateT
  • 为什么应用程序安装了两次?

    当我运行 Android App Studio 时 单元格是应用程序 安装 两次 有两个应用程序 一个称为 SplashScreenActivity 另一个称为 Doctor Quiz 我的应用程序 两者是平等的 如果我卸载一个 另一个也会
  • 在 django 1.7 中包含静态 js 文件

    这是一部分settings py STATIC URL static STATICFILES DIRS os path join BASE DIR static HTML 模板 load staticfiles vendor jquery
  • 哪种洪水填充算法性能更好?

    我正在尝试实现一种与洪水填充类似的算法 问题是我不确定应该以什么方式实现它 例如递归 非递归 我知道每一种都有其缺陷 但其中一种必须比另一种更快 当非递归每次分配 4 个新点时 递归会在堆栈上打开新函数 非迭代的示例 Stack
  • 我应该在新项目中使用“请求”模块吗?

    The 请求 模块 https github com request request长期以来一直是 Node js 的标准 他们最近已弃用 https github com request request issues 3142图书馆 我正
  • XAMPP - Apache 未在 Mac OS 上启动

    https www apachefriends org download html https www apachefriends org download html 以前我使用的是xampp osx 7 1 10 0 installer
  • Android ValueAnimator 在重复期间暂停

    因此 我使用 ValueAnimator 将火柴人的四肢以无限循环的方式从一个位置移动到另一个位置 或者至少直到动画停止 我的问题是 当动画师重复时 我会稍微停顿 就好像动画滞后一样 但只有当动画重复时才会发生这种情况 我还有其他动画只发生