Android – 非UI线程的Offscreen绘图

简短的经文

它是允许的,还是我需要使用UI线程?

编辑:对官方Android文档中的位置的引用将是理想的.

长版

Android文档明确指出,不允许“从UI线程外部访问Android UI工具包”.

另一方面,似乎允许从工作线程创建Bitmap对象,至少它是在示例代码中完成的:
http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html
显然,就线程而言,Bitmap类不被视为“UI工具包”的一部分.

我有一段代码,从非ui线程调用时似乎有效.它涉及使用Bitmap.createBitmap(int,int,Bitmap.Config),新的Canvas(位图),Typeface.create()和文本绘图.我的代码没有引用任何View对象.

有人能指出我的文档,说我可以从后台线程做这些事情吗?或者这会导致随机崩溃?

最佳答案 UI工具包意味着由Google提供的UI,例如按钮,标签,列表视图等.您无法从非ui线程访问它们主要是因为它们不是线程安全的.

你正在做的不是在UI工具包上,而是在允许(实际上应该被允许)从非ui线程访问的低级Canvas上.这种机制一直用于游戏开发.所以我相信你是安全的.

点赞