(Glide)应用在8.0的手机上使用tansition 动画时崩溃,并报出该错误:

java.lang.IllegalStateException: Software rendering doesn't support hardware bitmaps

        at android.graphics.BaseCanvas.throwIfHwBitmapInSwMode(BaseCanvas.java:562)

        at android.graphics.BaseCanvas.throwIfCannotDraw(BaseCanvas.java:62)

        at android.graphics.BaseCanvas.drawBitmap(BaseCanvas.java:120)

        at android.graphics.Canvas.drawBitmap(Canvas.java:1441)

        at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:529)

        at android.widget.ImageView.onDraw(ImageView.java:1367)

        at android.view.View.draw(View.java:20370)

        at android.view.View.draw(View.java:20235)

        at android.view.ViewGroup.drawChild(ViewGroup.java:4421)

        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4207)

        at android.view.View.draw(View.java:20373)

        at android.view.View.draw(View.java:20235)

        at android.view.ViewGroup.drawChild(ViewGroup.java:4421)

        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4207)

        at android.view.View.draw(View.java:20233)

        at android.view.ViewGroup.drawChild(ViewGroup.java:4421)

        at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4207)

        at android.view.View.draw(View.java:20373)

        at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:3586)

        at android.view.ViewRootImpl.draw(ViewRootImpl.java:3490)

        at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3246)

        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2781)

        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1743)

        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7780)

        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)

        at android.view.Choreographer.doCallbacks(Choreographer.java:723)

        at android.view.Choreographer.doFrame(Choreographer.java:658)

        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)

        at android.os.Handler.handleCallback(Handler.java:789)

        at android.os.Handler.dispatchMessage(Handler.java:98)

        at android.os.Looper.loop(Looper.java:164)

        at android.app.ActivityThread.main(ActivityThread.java:6944)

        at java.lang.reflect.Method.invoke(Native Method)

        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)

        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

查了一下,貌似是Glide的问题。在Glide 4.x上,hardware bitmaps(开启hardware bitmaps作用大概就是在使用ARGB_8888这种高质量的图片时,图片在内存中只会存在一份,反正就是一种节省内存的机制。) 配置默认是开启的,这也是Glide的一个Bug,高版本不知道修复了没有。

解决方案是在构建RequestOptions时,将该配置关掉。

解决办法:requestOptions.disallowHardwareConfig();

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天是开心的一天。 我们课题组组织去春游了,去的地方是上海动物园。 一大早,我们在地铁站集合,一行12人浩浩荡荡的...
    方块V阅读 1,180评论 0 0
  • 意淫,是《红楼梦》原创的词汇,但后来演变成一个多义词,其词义、词性、用法均发生了很大的变化。 在《红楼梦》原著里面...
    我可能有病吧阅读 5,478评论 2 0

友情链接更多精彩内容