然後要能把畫的圖片儲存跟讀取
讀取的方法我是用BitmapFactory.decodeFile把檔案圖片轉成bitmap
然後再把這個bitmap畫在canvas上,但時候遇到了一個error
錯誤訊息是這樣的
java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
股溝了一下發現也有人遇到這樣的問題
其原因是被載入的bitmap是不可被改變的,所以也不能用來畫在canvas上
如果是把bitmap帶入canvas的建構涵式的話就會出現上面的錯誤訊息
但如果是用canvas.setBitmap()的話只會出現這樣的錯誤訊息
java.lang.IllegalStateException
這一點真的想要抱怨一下android,錯誤訊息劈哩啪啦列了一大堆
唯一看到有用的訊息就是這一串然後也講得不清不楚了
但我想錯誤的原因應該都是一樣的,都是不可改變bitmap
解決的方法是把載入的bitmpa在複製一份出來用就好了~
Canvas mCanvas ; File bimapFile = new File("mmt\sdcard","pic.png"); Bitmap orgBitmap = BitmapFactory.decodeFile(bimapFile.getAbsolutePath()); Bitmap copyBitmap = orgBitmap.copy(Bitmap.Config.ARGB_8888, true); //用建構帶入bitmap或是用setBitmap方法帶入都可以 mCanvas = new Canvas(copyBitmap) //or //mCanvas = new Canvas(); //mCanvas.setBitmap(copyBitmap)
沒有留言:
張貼留言