美文网首页
BitmapFactory.decodeFile()方法解析出的

BitmapFactory.decodeFile()方法解析出的

作者: WeroNG | 来源:发表于2017-12-11 00:23 被阅读0次

遇到的问题

先贴问题代码:

 public void setmBitmap(String path){
        mBitmap = BitmapFactory.decodeFile(path); //这里有错
        mCanvas.setBitmap(mBitmap);
        invalidate();
    }

就是这段小小的代码,让我调试了两个钟头,(哭...

分析

调试一下就会发现问题,直接上图:

image.png
有一个Bitmap.isMutable()方法,那这个方法代表着什么呢?
官方给的解释:
Returns true if the bitmap is marked as mutable (i.e. can be drawn into)
返回这个Bitmap是否可以被绘制。
也就是说Bitmap里面一个boolean的变量,标志着是否能够绘制该Bitmap。

简单查看一下源码就能得到一个变量:
private final boolean mIsMutable;
也就是说,通过BitmapFactory.decodeFile()方法得到的bitmap是一个无法被绘制的。
问题已经找出来了,那就自然而然的能解决啦!

解决

既然是因为bitmap的内部字段mIsMutable为false导致的,那我们就改变一下这个变量的值,让它变为true。
通过查询,使用Bitmap.copy()方法

image.png
这个方法返回一个新的Bitmap,只需要把第二个参数设置为true:
mBitmap = BitmapFactory.decodeFile(path).copy(Bitmap.Config.ARGB_8888, true);
问题就解决啦

相关文章

  • BitmapFactory.decodeFile()方法解析出的

    遇到的问题 先贴问题代码: 就是这段小小的代码,让我调试了两个钟头,(哭... 分析 调试一下就会发现问题,直接上...

  • Android 如何优雅地加载大尺寸图片

    简述 Android 开发中可以使用 BitmapFactory.decodeFile 方法加载图片。如果图片太大...

  • android bitmapfactory.decodefile

    Bitmap scaledBitmap= BitmapFactory.decodeFile(imageFile.g...

  • 12 Bitmap

    Bitmap 加载方式 BitmapFactory.decodeFile/decodeStream/decodeR...

  • IINA+,让IINA变身网络直播客户端

    IINA+是一个解/.析在线直/播地址的App,解/.析结束之后通过第三方App播放解/.析出来的直/.播视频,同...

  • IINA+,让IINA变身网络直播客户端

    IINA+是一个解/.析在线直/播地址的App,解/.析结束之后通过第三方App播放解/.析出来的直/.播视频,同...

  • 解析json文件

    【问题】将放在assets文件夹下的地区json文件解析出来? 【代码】(1)解析json文件 (2)json 解...

  • 析出

    主席台上 讲,讲,讲,讲,讲,讲,讲,讲,讲…… 风暴群在一百双手掌间 飞来飞去 你消失在风暴中 你在溺水 但,你...

  • 析出

    每个方面顶尖的人,感觉都是把生活的某些方面按照术业专攻的析出。 一群人吵架,或者那边搞盛大活动,作者用...

  • 采铜《精进》:立刻行动才是精进王道

    作为知乎大神,采铜用他的文字剖析出现实生活中的问题,并且体检分析出理论性指导方法,本书主要是锻炼我们思...

网友评论

      本文标题:BitmapFactory.decodeFile()方法解析出的

      本文链接:https://www.haomeiwen.com/subject/aqxbixtx.html