我正在尝试在任务完成时制作动画。这里的问题是我收到此错误消息:
android.util.AndroidRuntimeException: Animators may only be run on Looper threads
at android.animation.ValueAnimator.cancel(ValueAnimator.java:1004)
at android.view.ViewPropertyAnimator.animatePropertyBy(ViewPropertyAnimator.java:965)
at android.view.ViewPropertyAnimator.animateProperty(ViewPropertyAnimator.java:921)
at android.view.ViewPropertyAnimator.alpha(ViewPropertyAnimator.java:735)
at com.design.zaton.prototypei.MainActivity$1$1.run(MainActivity.java:93)
at java.lang.Thread.run(Thread.java:761)
该应用程序之前使用完全相同的代码运行良好,但现在却无法正常运行。我真的很困惑。
这是发生错误的地方:
new Thread(new Runnable() {
@Override
public void run() {
final String s = getGiphyViews(String.valueOf(mEdit.getText()));
runOnUiThread(new Runnable() {
@Override
public void run() {
result.setText(s);
}
});
loading.animate()
.alpha(0)
.setDuration(100);
done.animate()
.scaleY(1)
.scaleX(1)
.setDuration(300);
}
}).start();
该错误概述了 loading.animate()
方法。
提前致谢!
原文由 Adrien Zier 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为,使用
Handler
有一个 解决方案。您可以使用postDelayed
最小为100
并运行您的动画任务。在您的情况下,它将是:我今天遇到了这个问题,上面的工作解决了这个问题。如果此方法有任何问题,我很乐意听取任何人的意见。