0

Android专家,我需要一些帮助。我是安卓菜鸟。我有一个应用程序,我需要在主 UI 线程之外使用画布绘制位图。我偶然发现了 SurfaceView 类并模拟了一个快速演示。我创建了一个单独的位图实例并绘制到其中。当 SurfaceView 的 OnDraw 发生时,我将此位图复制到 SurfaceView 中。在活动结束之前,它工作得很好,例如,返回主屏幕。那时,SurfaceView 线程似乎停止了,我似乎丢失了我正在处理的位图图像。当您返回应用程序时,它会从头开始。

出于性能原因,我想使用与主 UI 线程分开的线程中的画布 2D 绘图调用来创建位图图像。我需要不时将该位图放入主用户界面。当活动暂停或停止时,我需要保留位图图像并继续绘制(以保持其最新状态)。

由于您必须在主 UI 线程中进行所有绘图,SurfaceView 似乎是唯一的解决方案。但它也不像我希望的那样工作。

我需要一个永不停止运行的后台任务或线程,我需要在那里创建一个位图图像,并且我需要不时将该位图放入主用户界面(比如 10 赫兹更新)。

帮助!我该怎么做呢?

4

1 回答 1

0

使用 asynctask 将图像绘制到您的 ui 上。

但是,重新打开应用程序时需要重新绘制画布。如果您想保存您创建的位图,您需要将其存储在某个地方。我认为这可以使用缓存来处理:

view.setDrawingCacheEnabled(true);

否则请自行管理位图:

v1.setDrawingCacheEnabled(true); 
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
于 2012-06-05T16:42:32.070 回答