活动结束时保持位图

时间:2012-06-05 16:07:12

标签: android bitmap surfaceview

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

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

由于您必须在主UI线程中完成所有绘图,因此SurfaceView似乎是唯一的解决方案。但它并不像我希望的那样有效。

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

HELP!我该怎么做?

1 个答案:

答案 0 :(得分:0)

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

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

view.setDrawingCacheEnabled(true);

另外,请考虑自己管理位图:

v1.setDrawingCacheEnabled(true); 
bitmap = Bitmap.createBitmap(v1.getDrawingCache());