我是编程机器人的新手,但我有相当多的黑莓编程经验。
我创建了一个具有活动类 (main.java) 和视图类 (game.java) 的应用程序。
在视图类中,我将一些位图绘制到屏幕上。我创建了一个线程,并在线程中移动图像。但是,当我在线程内调用 invalidate() 时,它永远不会重绘屏幕。
您不能从线程中使屏幕无效()吗?我知道线程正在运行并且正在调用无效,它只是永远不会在屏幕上进行更改。
我是编程机器人的新手,但我有相当多的黑莓编程经验。
我创建了一个具有活动类 (main.java) 和视图类 (game.java) 的应用程序。
在视图类中,我将一些位图绘制到屏幕上。我创建了一个线程,并在线程中移动图像。但是,当我在线程内调用 invalidate() 时,它永远不会重绘屏幕。
您不能从线程中使屏幕无效()吗?我知道线程正在运行并且正在调用无效,它只是永远不会在屏幕上进行更改。
如果您从非 UI 线程调用它,则必须使用View.postInvalidate() 。根据文档:
public void postInvalidate () 自:API 级别 1
导致在事件循环的后续循环中发生无效。使用它来使来自非 UI 线程的视图无效。