Android动画暂停和播放问题

2024-01-25

我使用以下代码创建了一个动画。

private AnimationSet rootSet = new AnimationSet(true);
private int xstart=258;
private int ystart=146;
for(; k<points.length; k++) {
  if(k==1) {
    x1 = headX(xstart);
    y1 = headY(ystart);
    _animTime = 10;
  } else {

    x1 = headX(points[k-1][0]);
    y1 = headY(points[k-1][1]);
  }
  translate = new TranslateAnimation((float)x1, (float)x2, (float)y1, (float)y2);
  translate.setDuration(_animTime); 
  translate.setFillAfter(true);
  translate.setInterpolator(new AccelerateDecelerateInterpolator());
  totalAnimTime +=  _animTime;
  translate.setStartOffset(totalAnimTime);
  rootSet.addAnimation(translate);
  rootSet.setFillAfter(true);   
}

imv1.startAnimation(rootSet);

它运行良好。现在我必须为此动画添加暂停和播放功能。我怎样才能做到这一点?


由于您已经扩展了有关您明确想要使用的更多信息AnimationSet,我找到了另一个适合您的解决方案。

示例代码:

一个可扩展的类AnimationSet因为您需要取消AnimationSet:

public class CustomAnimationSet extends AnimationSet {

     private AnimationListener mCustomAnimationSetListener;

     public CustomAnimationSet(boolean interpolator) {
          super(interpolator);
     }

     public CustomAnimationSet(Context context, AttributeSet attrs) {
          super(context, attrs);
     }

     @Override
     public void setAnimationListener(AnimationListener listener) {
          super.setAnimationListener(listener);
          mCustomAnimationSetListener = listener;
     }

     /**
      * Your cancel method....
      */
     public void cancel() {
          // Make sure you're cancelling an ongoing AnimationSet.
          if(hasStarted() && !hasEnded()) {
               if(mCustomAnimationSetListener != null) {
                    mCustomAnimationSetListener.onAnimationEnd(this);
               }
          }

          // Reset the AnimationSet's start time.
          setStartTime(Float.MIN_VALUE);
     }

}

In your Activity class:

private CustomAnimationSet mAnimationSet;

// Init stuff.

@Override
public void onClick(View v) {
    switch(v.getId()) {
        case R.id.onPlayButton:
            // Might wanna add Animations before starting next time?
            mAnimationSet.start();
        case R.id.onPauseButton:
            mAnimationSet.cancel();
            mAnimationSet.reset();
    }
}

这只是一个例子。目前我没有机会亲自测试它,这只是为了示例目的而编写的。

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

Android动画暂停和播放问题 的相关文章

  • BottomNavigationView - 如何获取选定的菜单项?

    我使用BottomNavigationView来切换片段 如何获取当前选定的菜单项 以防止重新打开片段 BottomNavigationView bottomNavigationView BottomNavigationView findV
  • 在应用程序简历中隐藏软键盘

    我有一个 Android 应用程序 使用 Xamarin 用 C 编写 我已将应用程序简化为包含 TextView 和用于横幅广告的 Google admod AdView 的 LinearLayout 我不希望软键盘出现在应用程序中 这不
  • Android 通知进度条冻结

    这是我正在使用的代码 http pastebin com 3bMCKURu http pastebin com 3bMCKURu 问题是 一段时间后 文件变得更重 通知栏下拉速度变慢 最后它就冻结了 你的通知太频繁了 这就是它冻结的原因 让
  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • 使用 Android 前台服务为 MediaPlayer 创建通知

    问题就在这里 我目前正在开发一个应用程序 该应用程序必须提供 A 广播播放器 来自 URL 的 AAC 直播 还有一个播客播放器 来自 URL 的 MP3 流 该应用程序必须能够在后台运行 Android 服务 并通过以下方式向用户公开持续
  • 从 Throwable 获取错误代码 - Android

    我怎样才能从错误代码可投掷 https developer android com reference java lang Throwable html public void onFailure Throwable exception 我
  • 奇怪的 UITableView 插入/删除行动画

    在带有动画 UITableView RowAnimationTop 的 UITableView 中插入 删除 UITableViewCell 时 我看到了奇怪的效果 当要插入的单元格比上面的单元格大得多时 就会发生动画故障 显示模拟器中的故
  • 与 Admob 广告单元 ID 混淆

    我跟着tutorial https developers google com admob android quick start在我的应用程序中创建广告横幅 到目前为止 这有效 我可以看到测试广告 但是 本教程指示我在两个不同的位置使用两
  • 在自定义对象中创建时粘性服务不会重新启动

    我有一个具有绑定服务的单例对象 我希望它重新启动 当我从启动器启动应用程序时 单例对象将初始化并绑定到这个现有的服务实例 以下是在单例中创建和绑定服务的代码 public class MyState private static MySta
  • 菜单未显示在应用程序中

    由于某种原因 我的操作菜单在我的 Android Studio 应用程序中消失了 我正在按照教程学习如何创建 Android 应用程序 但最终遇到了这个问题 我正在使用 atm 的教程 http www raywenderlich com
  • Android libgdx 首选项丢失

    我在 Libgdx 引擎中创建了 Android 游戏 一段时间后 我注意到在某些应用程序杀手中杀死该应用程序后 或者如果我在 Android 设置中执行 强制关闭 操作 我保存到首选项中的游戏选项就会丢失 有办法防止这种情况吗 我从来没有
  • 如果我们使用后退按钮退出,为什么 Android 应用程序会重新启动?

    按住主页按钮并返回应用程序时 应用程序不会重新启动 为什么使用后退按钮会重新启动 如果我们使用后退按钮退出 有什么方法可以解决在不重新启动的情况下获取应用程序的问题吗 请帮忙 当您按下Home按钮 应用程序将暂停并保存当前状态 最后应用程序
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • Firebase:如何在Android应用程序中设置默认通知渠道?

    如何设置default通知渠道通知消息当应用程序在后台运行时会出现什么情况 默认情况下 这些消息使用 杂项 通道 如你看到的在官方文档中 https firebase google com docs cloud messaging andr
  • Android 版 Robotium - solo.searchText () 不起作用

    我在使用 Robotium 时遇到 searchText 函数问题 我正在寻找这个字符串
  • minHeight 有什么作用吗?

    在附图中 我希望按钮列与图像的高度相匹配 但我也希望按钮列有一个最小高度 它正确匹配图像的高度 但不遵守 minHeight 并且会使按钮向下滑动 我正在为按钮列设置这些属性
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 下载后从谷歌照片库检索图像

    我正在发起从图库中获取照片的意图 当我在图库中使用 Nexus 谷歌照片应用程序时 一切正常 但如果图像不在手机上 在 Google Photos 在线服务上 它会为我下载 选择图像后 我将图像发送到另一个活动进行裁剪 但在下载的情况下 发
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • 使用 Espresso 检查 EditText 的字体大小、高度和宽度

    如何使用 Espresso 检查 EditText 的字体大小 高度和宽度 目前要分割我使用的文本 onView withId R id editText1 perform clearText typeText Amr 并阅读文本 onVi

随机推荐

  • JSP/Spring MVC 和 CDN?

    您建议采用哪种方法来使您的 JSP 项目 Spring MVC 项目为内容交付网络 CDN 做好准备 Meaning 在本地主机上静态内容应该是本地的 在实时网站上静态内容应该通过 CDN 传递 目前我只看到以下选项 使用环境属性 例如 i
  • 裸机环境下malloc什么时候返回NULL?

    有一个c内存模型如下 Last Address of RAM Stack v RAM Heap ZI RW First Address of RAM 堆栈和堆空间以相反的方向增加 它们会在中间相互重叠
  • 如何将可变数量的参数传递给 sprintf() 函数?

    在我的网页中 如果用户选择表单中的某些选项 例如 1 A Chosen 2 B Chosen 3 C Not Chosen 然后 我的脚本中的 sprintf 函数应该接受该数量的参数 sprintf s s valueOf A value
  • 从 python32 进行 Python 打印

    我无法让 Python 打印 word 文档 我想做的是打开Word文档 打印它然后关闭它 我可以打开Word和Word文档 import win32com client msword win32com client Dispatch Wo
  • 如何使用 Applescript 更改首选项窗格滑块值?

    我正在尝试创建一个 AppleScript 来设置输入音量 of the Input类别下的Sound菜单中系统偏好设置 如何改变 Slider 的值 tell application System Preferences activate
  • Create React App 中 Eject 做了什么?

    我认为这与直接使用 webpack 有关 因此提供了更多的灵活性 但我不完全确定是否有人可以解释 弹出 的含义 另外 弹出创建反应应用程序会产生什么后果 这样做是不好还是 引导一个react项目需要你了解诸如Webpack or Babel
  • Apple watchOS 2 加速计

    我正在考虑制作一个watchOS2使用加速度计的应用程序 如果应用程序在后台运行 它是否仍然能够接收来自加速度计的输入或CMMotionManager 仅当 watchOS2 应用程序运行时 您才能访问实时加速度计数据 但是 您可以访问加速
  • Angular 8嵌套路由和多个路由器出口不起作用

    我现在有一个简单的 Angular 8 3 应用程序 但路由不起作用 当我转到 logs 时 没有任何错误 但屏幕上没有显示任何内容 当我转到 logs detailed 1036 时 控制台中出现错误 错误 无法匹配任何路由 URL 段
  • 如何使用 UIPinchGestureRecognizer 设置最小和最大缩放比例

    我想放大和缩小图像视图 但我不想使用 UIScrollView 来实现这一点 所以为此我使用了 UIPinchGestureRecognizer 这是我的代码 recognizer view transform CGAffineTransf
  • 代码签名错误:身份“iPhone Developer: x Xxxxx”与任何配置文件中的任何身份都不匹配

    当我构建 iPhone 项目以在我的设备上运行时 出现此构建错误 Code Sign error The identity iPhone Developer x Xxxxx doesn t match any identity in any
  • 使用摇动效果向左和向右制作 WPF 窗口动画?

    有人可以告诉我如何从当前位置为窗口设置动画吗 我正在寻找一种摇动效果 只需左右摇动窗口 5 到 6 次 我知道我需要使用Animation By 这是我已经开始但还没有走得太远的事情 然而这不起作用
  • 在 Numpy / Pandas 中生成所有平行对角线之和的直接方法?

    我有一个矩形 不能假设为正方形 Pandas DataFrame 的数字 假设我选择一个对角线方向 从左上到右下 或 从右上到左下 我想计算一个系列 其条目是原始 DataFrame 沿选定的一组平行对角线的值的总和 要完全指定目标 您需要
  • 如果鼠标在元素内部,则延迟 mouseenter 事件并引发事件

    我使用这个基于 jQuery 开发的选项卡视图 https d2o0t5hpnwv4c1 cloudfront net 001 Tabbed site jQuery html https d2o0t5hpnwv4c1 cloudfront
  • 模拟拖动窗口标题栏的控件

    我已经构建了一个自定义控件 我希望允许人们单击并拖动我的控件 就像在窗口标题栏上拖动一样 做这个的最好方式是什么 到目前为止 我未能成功地利用鼠标向下 向上和移动事件来破译何时需要移动窗口 除了我的其他答案之外 您还可以在控件中手动执行此操
  • 将多个子视图传递给 SwiftUI 中的视图

    我创建了一个 Swift 包 它根据传递给它的内容数组创建多个 PageTabView import SwiftUI public struct WhatsNewView
  • 登录后活动管理员重定向

    当管理员登录时 它会自动重定向到主主页 即不是管理仪表板 我不确定为什么会这样做或如何改变它 路线 rb ActiveAdmin routes self devise for admin user ActiveAdmin Devise co
  • 匹配最长重复序列的正则表达式

    我想匹配至少重复一次的最长序列 Having T send ack new amend pending cancel replace replaced cancel pending cancel replace replaced 结果应该是
  • Sql Server 更改数据捕获:添加列时保留历史记录?

    将新列添加到配置为更改数据捕获 cdc 的表时 捕获实例表不会有新列 直到为源表禁用并重新启用 cdc 在此过程中 现有的捕获实例将被删除 我想我可以将现有数据复制到临时表中 然后使用以下 SQL 复制回来 但是 其他 CDC 元信息 例如
  • 添加 GROUP BY 子句产生的列

    我遇到了这样的情况 使用 GROUP BY 后需要从两行添加列 我的查询如下 select AcctId DC sum TrnAmt from TableId group by AcctId DC order by AcctId DC Re
  • Android动画暂停和播放问题

    我使用以下代码创建了一个动画 private AnimationSet rootSet new AnimationSet true private int xstart 258 private int ystart 146 for k