Android 活动结束时持久化位图
安卓专家,我需要一些帮助。我是个机器人呆子。我有一个应用程序,需要从主UI线程外部使用画布绘制位图。我偶然发现了SurfaceView类并模拟了一个快速演示。我创建了一个单独的位图实例并绘制到其中。当surfaceView的OnDraw出现时,我将此位图复制到surfaceView中。在活动结束之前,例如,返回主屏幕,它工作得非常好。此时,SurfaceView线程似乎停止了,我似乎丢失了正在处理的位图图像。当你回到应用程序时,它会从头开始 出于性能原因,我想使用canvas 2D绘图调用从一个与主UI线程分离的线程创建位图图像。我需要每隔一段时间将位图输入主用户界面。当活动暂停或停止时,我需要保留位图图像并继续绘制(以保持其最新状态) 由于您必须在主UI线程中完成所有绘图,因此SurfaceView似乎是唯一的解决方案。但它也不像我希望的那样有效 我需要一个永远不会停止运行的后台任务或线程,我需要在那里创建一个位图图像,我需要每隔一段时间将该位图放入主用户界面(比如10 hz更新)Android 活动结束时持久化位图,android,bitmap,surfaceview,Android,Bitmap,Surfaceview,安卓专家,我需要一些帮助。我是个机器人呆子。我有一个应用程序,需要从主UI线程外部使用画布绘制位图。我偶然发现了SurfaceView类并模拟了一个快速演示。我创建了一个单独的位图实例并绘制到其中。当surfaceView的OnDraw出现时,我将此位图复制到surfaceView中。在活动结束之前,例如,返回主屏幕,它工作得非常好。此时,SurfaceView线程似乎停止了,我似乎丢失了正在处理的位图图像。当你回到应用程序时,它会从头开始 出于性能原因,我想使用canvas 2D绘图调用从一个
救命啊!如何完成此操作?使用异步任务将图像绘制到ui上 但是,重新打开应用程序时需要重新绘制画布。如果要保存创建的位图,需要将其存储在某个位置。我认为这可以通过缓存来处理:
view.setDrawingCacheEnabled(true);
否则,请自行管理位图:
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
创建一个独立的
过程对你有用吗?嗨,乌鸦,谢谢你的快速回复。你能详细解释一下吗?你是指使用C++、NDK和一个分离的过程吗?抱歉,我仍然是一个noob。您可以创建单独的进程
,这在Android清单
中不太受鼓励。但是单独的进程如何访问画布API呢?你能做到吗?那么如何创建这个独立的流程呢?好的,看起来您需要了解更多关于服务的信息。现在,如果你不知道Android中的服务
标签,你需要到文档中亲自阅读。谢谢,我刚刚阅读了关于AyncTasks和UI的内容,实际上非常及时!我还将研究缓存。非常感谢!没问题,很高兴我能帮忙。欢迎来到StackOverflow。你应该接受答案,把它从“未回答”列表中去掉。好吧,我不知道。不过,我想我还是等着看是否还有其他想法。那我就把它关上。