我正在编写我的第一个android应用程序。所以我仍然处于学习阶段。安卓图形绘制在画布上问题
它非常简单,我在屏幕中心的onDraw()中绘制图形,并且onTouch事件必须将图形移动到用户触摸的位置。为此,onTouch事件将启动一个线程并更新图形。问题是canvas.draw()在从onDraw()调用时工作,但在线程内调用时不会更新画布/屏幕。
我的功能drawSplash(Canvas c,Location l);
我在onDraw()和线程中都调用了相同的函数。
我可以看到的代码唯一的区别是我传递给我的Canvas对象放在我的类的变量的onDraw()函数中,以便我可以再次在线程中使用它。这不知何故感觉不对。如果是这样,那么执行此操作的正确方法是什么?我可以随时获得Canvas对象吗?我怎么做?
- P
啊。所以当我调用invalidate()时,整个视图被破坏了吗?我必须每次都重新绘制整个图形才能更新飞溅? – user220201 2011-03-28 14:52:42
当你调用invalidate()时,画布被清除,并调用'onDraw'方法。所以'onDraw'应该每次绘制所有内容 – 2011-03-28 15:05:36
@iuliux - 这很有趣。以前从未想过它。所以,如果我正在创建一个国际象棋棋盘,那么随着一举一动我再次绘制整个棋盘?这是它通常如何工作?有没有更新图形或至少分离我想更新的东西的概念,同时保持底座(如板在这里)不变? – user220201 2011-03-28 15:38:31