我正试图在画布上移动一个球. a和b类似于x,y坐标位置.从我的代码中试图动态获取不同值的任何方式. a,b是全局变量.但似乎“invalidate()”或屏幕刷新仅在整个循环结束时发生.你知道为什么吗?.如果我必须在另一个线程上构建它,请建议我一些简单的代码.
private void shootBall(){
while (a>b){
a = getPositionX();
b = getPositionY();
invalidate();
}
}
}
解决方法:
这样做,并使用postInvalidate()代替:
private void shootBall(){
new Thread(new Runnable() {
public void run() {
while (a>b){
a = getPositionX();
b = getPositionY();
postInvalidate();
}
}
}).start();
}
编辑:但如前所述,不要假设无效重绘屏幕,它标记为要重绘,UI线程将绕过它.
原文地址:https://www.jb51.cc/android/1071083.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。