Adr*_*ier 27 java multithreading android android-animation
我正在尝试在任务完成时动画一些东西.这里的问题是我收到此错误消息:
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)
Run Code Online (Sandbox Code Playgroud)
该应用程序使用相同的确切代码工作正常,但现在它根本没有.我真的很困惑.
这是错误发生的地方:
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();
Run Code Online (Sandbox Code Playgroud)
该错误概述了该loading.animate()方法.
提前致谢!
Gur*_*Rao 17
我想,出现了一个解决这个使用Handler.您可以使用postDelayed最小化100并运行动画任务.在你的情况下,它将是:
new Handler().postDelayed(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);
}
}, 100);
Run Code Online (Sandbox Code Playgroud)
我今天遇到了这个问题,上面的工作解决了这个问题.如果这个方法有任何问题,我很乐意听到任何人的意见.
Dav*_*ide 13
runOnUiThread(new Runnable() {
@Override
public void run() {
//Your code
}
});
Run Code Online (Sandbox Code Playgroud)
您必须在UI线程中执行代码
| 归档时间: |
|
| 查看次数: |
22778 次 |
| 最近记录: |