我在 Activity 类中设置了全局变量 x,y。
我启动了一个线程“t0”,它不断更新全局变量 x 和 y。
我的 onDraw 伪代码如下(全部在 UI 线程上):-
View.onDraw(){
if (x,y changed value) {
x0=x;
y0=y;
loop (x0-- until x0==0){
canvas.drawBitmap(bmp, x0, y0, bitmapPaint);
invalidate();
}
}
}
我希望我会看到位图在 x 轴上在屏幕上移动的动画,每个 invalidate() 都重新绘制新位置。相反,我看到它“跳转”到最后一个 x 位置 0(没有中间阶段)。
我假设虽然 x 和 y 正在通过 t0 更新,但我并不太担心,因为循环正忙于原始 x,y 值(分配给 x0,y0)。
我观察到 x,y 更新并且代码在“if 循环”内执行(我通过调试看到了这一点)。
我尝试添加延迟,但似乎没有任何区别。我可以让它直接重新绘制到一个新的 x,y 位置,但我需要通过循环进行平滑的“过渡”,以便从一个 x0 坐标到另一个坐标。
任何提示或提示将不胜感激。
提前致谢。
史蒂夫