相关疑难解决方法(0)

如何修复"canvas:尝试使用回收的位图错误"?

我正在创建一个RecyclerView显示图片网格.选择其中一个时,它应该打开一个带有转换的新活动.

我正在使用Glide库加载图片,过渡看起来很糟糕,因为它重新加载了新活动中的图片.所以我不得不将它保存在缓存中,然后将其用于转换.

我有代码,但有时如果图片没有加载,它会抛出Canvas RuntimeException.

这是日志:

07-03 15:19:58.633  28461-28461/jahirfiquitiva.project E/AndroidRuntime? FATAL EXCEPTION: main
    Process: jahirfiquitiva.project, PID: 28461
    java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@29f09d20
            at android.graphics.Canvas.throwIfCannotDraw(Canvas.java:1282)
            at android.view.GLES20Canvas.drawBitmap(GLES20Canvas.java:599)
            at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:538)
            at android.widget.ImageView.onDraw(ImageView.java:1176)
            at android.view.View.draw(View.java:15239)
            at android.view.View.updateDisplayListIfDirty(View.java:14175)
            at android.view.View.getDisplayList(View.java:14197)
            at android.view.GhostView.onDraw(GhostView.java:52)
            at android.view.View.draw(View.java:15239)
            at android.view.View.updateDisplayListIfDirty(View.java:14175)
            at android.view.View.getDisplayList(View.java:14197)
            at android.view.View.draw(View.java:14967)
            at android.view.ViewGroup.drawChild(ViewGroup.java:3406)
            at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3199)
            at android.view.View.updateDisplayListIfDirty(View.java:14170)
            at android.view.View.getDisplayList(View.java:14197)
            at android.view.View.draw(View.java:14967)
            at android.view.ViewGroup.drawChild(ViewGroup.java:3406)
            at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3199)
            at android.view.ViewOverlay$OverlayViewGroup.dispatchDraw(ViewOverlay.java:219)
            at android.view.View.draw(View.java:15248)
            at android.widget.FrameLayout.draw(FrameLayout.java:598)
            at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2906)
            at android.view.View.updateDisplayListIfDirty(View.java:14175)
            at android.view.View.getDisplayList(View.java:14197)
            at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:273)
            at …
Run Code Online (Sandbox Code Playgroud)

java android canvas bitmap android-glide

7
推荐指数
2
解决办法
2万
查看次数

试图使用回收的位图android.graphics.Bitmap

我正在显示一个.gif文件activity A.当用户按下一个按钮时,用户移动到activity b同一个.gif显示在那里,但我正在"尝试使用回收的位图android.graphics.Bitmap"这个错误在我的activity b.

我从SD卡中显示.gif和对onStop()我设置imageviewactivity a,以null中和activity A,但我没有能够解决这个问题.

在这种情况下请帮忙.

// Log Cat

12-31 10:58:49.819: E/AndroidRuntime(20903): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@405131c8
12-31 10:58:49.819: E/AndroidRuntime(20903):     at android.graphics.Canvas.throwIfRecycled(Canvas.java:955)
12-31 10:58:49.819: E/AndroidRuntime(20903):     at android.graphics.Canvas.drawBitmap(Canvas.java:1044)
12-31 10:58:49.819: E/AndroidRuntime(20903):     at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:325)
12-31 10:58:49.819: E/AndroidRuntime(20903):     at android.widget.ImageView.onDraw(ImageView.java:854)
12-31 10:58:49.819: E/AndroidRuntime(20903):     at android.view.View.draw(View.java:6880)
12-31 10:58:49.819: E/AndroidRuntime(20903):     at android.view.ViewGroup.drawChild(ViewGroup.java:1646)
12-31 10:58:49.819: E/AndroidRuntime(20903):     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
12-31 10:58:49.819: E/AndroidRuntime(20903):     at …
Run Code Online (Sandbox Code Playgroud)

android

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×2

android-glide ×1

bitmap ×1

canvas ×1

java ×1