alexvasilkov / GestureViews

ImageView and FrameLayout with gestures control and position animation
Apache License 2.0
2.37k stars 384 forks source link

java.lang.RuntimeException: Canvas: trying to draw too large(525944320bytes) bitmap. #155

Closed deverhjj closed 4 years ago

deverhjj commented 4 years ago

java.lang.RuntimeException: Canvas: trying to draw too large(525944320bytes) bitmap.

Have load this long image with Glide, but GestureImageView draw method draw original big bitmap.

--------- Stack trace ---------

android.graphics.RecordingCanvas.throwIfCannotDraw(RecordingCanvas.java:281) android.graphics.BaseRecordingCanvas.drawBitmap(BaseRecordingCanvas.java:91) android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:548) android.graphics.drawable.TransitionDrawable.draw(TransitionDrawable.java:233) android.widget.ImageView.onDraw(ImageView.java:1434) android.view.View.draw(View.java:23190) com.alexvasilkov.gestures.views.GestureImageView.draw(GestureImageView.java:88) android.view.View.updateDisplayListIfDirty(View.java:22065) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5214) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5186) android.view.View.updateDisplayListIfDirty(View.java:22020) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5214) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5186) android.view.View.updateDisplayListIfDirty(View.java:22020) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5214) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5186) android.view.View.updateDisplayListIfDirty(View.java:22020) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5214) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5186) android.view.View.updateDisplayListIfDirty(View.java:22020) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5214) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5186) android.view.View.updateDisplayListIfDirty(View.java:22020) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5214) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5186) android.view.View.updateDisplayListIfDirty(View.java:22020) android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:5214) android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:5186) android.view.View.updateDisplayListIfDirty(View.java:22020) android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:588) android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:594) android.view.ThreadedRenderer.draw(ThreadedRenderer.java:667) android.view.ViewRootImpl.draw(ViewRootImpl.java:4263) android.view.ViewRootImpl.performDraw(ViewRootImpl.java:4047) android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3320) android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2200) android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9065) android.view.Choreographer$CallbackRecord.run(Choreographer.java:999) android.view.Choreographer.doCallbacks(Choreographer.java:797) android.view.Choreographer.doFrame(Choreographer.java:732) android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:984) android.os.Handler.handleCallback(Handler.java:883) android.os.Handler.dispatchMessage(Handler.java:100) android.os.Looper.loop(Looper.java:237) android.app.ActivityThread.main(ActivityThread.java:8016) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076)

######################

alexvasilkov commented 4 years ago

Duplicate of #103, #108.

This library does not modify bitmaps in any way. The only entry in this stacktrace leads to GestureImageView.java:88, which is just a call to "super.draw(canvas)".