android – Canvas不会更新(invalidate)直到整个while循环结束

android – Canvas不会更新(invalidate)直到整个while循环结束,第1张

概述我正试图在画布上移动一个球. a和b类似于x,y坐标位置.从我的代码中试图动态获取不同值的任何方式. a,b是全局变量.但似乎“invalidate()”或屏幕刷新仅在整个循环结束时发生.你知道为什么吗?.如果我必须在另一个线程上构建它,请建议我一些简单的代码. private void shootBall(){ while (a>b){ a = getPositionX( 我正试图在画布上移动一个球. 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线程将绕过它.

总结

以上是内存溢出为你收集整理的android – Canvas不会更新(invalidate)直到整个while循环结束全部内容,希望文章能够帮你解决android – Canvas不会更新(invalidate)直到整个while循环结束所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1123043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存