如何在方法在droid结束之前刷新屏幕?
问题描述:
如果我将一个ImageView
的来源更改为另一个(并因此更改图像),但是在方法等内部会发生更多更改。如何强制刷新以在方法结束之前显示更改? (由于等待方法结束以显示改变的图像对我来说根本不好)如何在方法在droid结束之前刷新屏幕?
答
基本上,除非您自己创建线程,否则您正在UI线程中运行。无效/睡眠只是暂停渲染/输入/等。您的redraw()
仅在当前函数退出后才在UI线程中调用。您想分开这两个,或使用较低级别的技术(分别在另一个线程中为postInvalid()
,或分别为SurfaceView
w/repaint()
)。
嗯我仍然有点困惑,虽然我觉得我正在接近这个整个项目的方式是错误的 - 一个线程是Java类,得到的启动正确吗?我有一个巨大的playscreen.java,当从另一个屏幕按下播放按钮时启动。这包含用户界面和“游戏引擎”所以,如果我需要刷新..我需要把我的“游戏引擎”扔在另一个类中..也可以在用户界面启动时启动并在需要的地方安装postInvalid()在每个图像或文字改变?还有什么会在postInvalid之前,我将如何启动这两个从开始 – 2010-10-27 18:31:42
这听起来像你的“游戏引擎”在UI线程上运行。这是非常非常糟糕的 – Falmarri 2010-10-27 18:38:40
所以我的游戏引擎应该在不同的Java类?但是,如何让UI和游戏引擎类同时运行? – 2010-10-27 19:04:19