0
使用自定义布局并且有时启用和禁用绘图缓存。错误画布:在使用setDrawingCacheEnabled(false)时尝试使用回收的位图
唯一的小问题,就是我开发分钟APIVersion 9,但低于14的任何产生以下错误:
java.lang.RuntimeException: Canvas: trying to use a recycled bitmap [email protected]
E/AndroidRuntime(6954): at android.graphics.Canvas.throwIfRecycled(Canvas.java:1026)
E/AndroidRuntime(6954): at android.graphics.Canvas.drawBitmap(Canvas.java:1065)
E/AndroidRuntime(6954): at android.view.View.draw(View.java:13620)
E/AndroidRuntime(6954): at android.view.ViewGroup.drawChild(ViewGroup.java:2928)
E/AndroidRuntime(6954): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2797)
E/AndroidRuntime(6954): at android.view.View.draw(View.java:13589)
E/AndroidRuntime(6954): at android.view.ViewGroup.drawChild(ViewGroup.java:2928)
E/AndroidRuntime(6954): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2797)
E/AndroidRuntime(6954): at android.view.View.draw(View.java:13710)
E/AndroidRuntime(6954): at android.widget.FrameLayout.draw(FrameLayout.java:467)
E/AndroidRuntime(6954): at android.view.View.draw(View.java:13591)
E/AndroidRuntime(6954): at android.view.ViewGroup.drawChild(ViewGroup.java:2928)
E/AndroidRuntime(6954): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2797)
E/AndroidRuntime(6954): at android.view.View.draw(View.java:13589)
E/AndroidRuntime(6954): at android.view.ViewGroup.drawChild(ViewGroup.java:2928)
E/AndroidRuntime(6954): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2797)
E/AndroidRuntime(6954): at android.view.View.draw(View.java:13710)
E/AndroidRuntime(6954): at android.widget.FrameLayout.draw(FrameLayout.java:467)
E/AndroidRuntime(6954): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2211)
E/AndroidRuntime(6954): at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2281)
E/AndroidRuntime(6954): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2177)
E/AndroidRuntime(6954): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2045)
E/AndroidRuntime(6954): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1854)
E/AndroidRuntime(6954): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
E/AndroidRuntime(6954): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
E/AndroidRuntime(6954): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
E/AndroidRuntime(6954): at android.view.Choreographer.doCallbacks(Choreographer.java:562)
E/AndroidRuntime(6954): at android.view.Choreographer.doFrame(Choreographer.java:532)
E/AndroidRuntime(6954): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
E/AndroidRuntime(6954): at android.os.Handler.handleCallback(Handler.java:725)
E/AndroidRuntime(6954): at android.os.Handler.dispatchMessage(Handler.java:92)
我没有直接使用任何位图
,我真的不知道是什么问题是。如果我将线条设置为setDrawingCacheEnabled(false)
,事情就会起作用,但我希望保持它的性能。
使用MAT分析器来查找内存泄漏。 www.youtube.com/watch?v=_CruQY55HOk。该家伙展示了如何使用垫来寻找内存泄漏 – Raghunandan
垫并没有表明任何明显的东西。这是一个非常小的应用程序,一个带背景的自定义布局和一个带按钮的主布局。 – serenskye