android - 播放后停止 AnimatedVectorDrawable 动画
问题描述
我有一个 AnimatedVectorDrawable,它在单击时从播放动画到暂停状态。
...
animatedVectorDrawable.registerAnimationCallback(new Animatable2.AnimationCallback() {
@Override
public void onAnimationEnd(Drawable drawable) {
//Reset the image back to its original state
//What I've tried so far
/* img.setImageResource(R.drawable.original_state)
animatedVectorDrawable.stop()
animatedVectorDrawable.reset() */
}
});
animatedVectorDrawable.start();
但是,我无法成功地将其恢复到原始状态,以便我可以再次播放。我该如何解决这个问题?
解决方案
你可以这样做:
final Handler mainHandler = new Handler(Looper.getMainLooper());
animatedVector.registerAnimationCallback(new Animatable2.AnimationCallback() {
@Override
public void onAnimationEnd(final Drawable drawable) {
mainHandler.post(new Runnable() {
@Override
public void run() {
animatedVectorDrawable.start();
}
});
}
});
animatedVectorDrawable.start();
推荐阅读
- python - 如何使用 BeautifulSoup 从表中提取 href 链接
- scala - 错误:对象服务不是 com.twitter.finagle 包的成员 - 在构建文件中定义 Bazel 依赖项,Scala finagle
- c# - 在 c# 中使用 Microsoft.VisualStudio.OLE.Interop 的示例
- javascript - 添加新的选择标签时如何更改选择标签的元素
- azure - 如何避免在 Azure Agent for Pipeline 环境中创建新文件夹
- arrays - 使用用户输入填充二维矩阵的循环的异常处理
- c# - 如何使用 Visual Studio 2017 在 .Net Framework v4.6.1 应用程序中安装实体框架
- c# - 选择应用程序窗口和 PostMessage
- spring - 使用 Kubernetes 在容器中增加堆内存
- javascript - 有没有办法在 Mojs 中只将左上边框半径添加到形状(不是 Html)模块