如何在Android的包裹位图 [英] How To: Parcel a bitmap in Android
本文介绍了如何在Android的包裹位图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有我想添加一个位图序列化类,但位图不支持序列化。
相反,我想我会用一个包裹来代替,但不能让它的工作。
下面是使用局部变量的一些测试code:
包裹包裹;
sourceBitmap中的位图;
位图destinationBitmap;
包裹= Parcel.obtain();
sourceBitmap中= Bitmap.createBitmap(200,400,Config.ARGB_8888);
sourceBitmap.writeToParcel(包裹,0);
destinationBitmap = Bitmap.CREATOR.createFromParcel(包裹);
我上最后一行出现以下错误上面:
09-06 21:18:20.463:DEBUG / Skia的(17716):Bitmap_createFromParcel未知的配置:0
09-06 21:18:20.473:DEBUG / AndroidRuntime(17716):关闭虚拟机
09-06 21:18:20.483:WARN / dalvikvm(17716):主题ID = 3:线程退出与未捕获的异常(组= 0x4001b188)
09-06 21:18:20.493:ERROR / AndroidRuntime(17716):未捕获的处理程序:螺纹主力退出,由于未捕获的异常
09-06 21:18:20.513:ERROR / AndroidRuntime(17716):java.lang.RuntimeException的:无法unparcel位图
09-06 21:18:20.513:ERROR / AndroidRuntime(17716):在android.graphics.Bitmap $ 1.createFromParcel(Bitmap.java:899)
09-06 21:18:20.513:ERROR / AndroidRuntime(17716):在android.graphics.Bitmap $ 1.createFromParcel(Bitmap.java:903)
解决方案
您必须重置您的包裹:
sourceBitmap.writeToParcel(包裹,0);
parcel.setDataPosition(0);
destinationBitmap = Bitmap.CREATOR.createFromParcel(包裹);
I have a serialized class which I want to add a bitmap to, but Bitmap doesn't support serialize.
Instead I thought I'd use a parcel instead, but can't get it to work.
Here's some test code using local variables:
Parcel parcel;
Bitmap sourceBitmap;
Bitmap destinationBitmap;
parcel = Parcel.obtain();
sourceBitmap = Bitmap.createBitmap(200, 400, Config.ARGB_8888);
sourceBitmap.writeToParcel(parcel, 0);
destinationBitmap = Bitmap.CREATOR.createFromParcel(parcel);
I get the following error on the last line above:
09-06 21:18:20.463: DEBUG/skia(17716): Bitmap_createFromParcel unknown config: 0
09-06 21:18:20.473: DEBUG/AndroidRuntime(17716): Shutting down VM
09-06 21:18:20.483: WARN/dalvikvm(17716): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
09-06 21:18:20.493: ERROR/AndroidRuntime(17716): Uncaught handler: thread main exiting due to uncaught exception
09-06 21:18:20.513: ERROR/AndroidRuntime(17716): java.lang.RuntimeException: Failed to unparcel Bitmap
09-06 21:18:20.513: ERROR/AndroidRuntime(17716): at android.graphics.Bitmap$1.createFromParcel(Bitmap.java:899)
09-06 21:18:20.513: ERROR/AndroidRuntime(17716): at android.graphics.Bitmap$1.createFromParcel(Bitmap.java:903)
解决方案
you have to reset your parcel:
sourceBitmap.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
destinationBitmap = Bitmap.CREATOR.createFromParcel(parcel);
这篇关于如何在Android的包裹位图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文