如何:在Android中包裹位图

我有一个序列化的类,我想添加一个位图,但Bitmap不支持序列化。

相反,我认为我会使用一个包裹,但不能让它工作。

这是使用局部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); 

我在上面的最后一行收到以下错误:

 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) 

你必须重置你的包裹:

 sourceBitmap.writeToParcel(parcel, 0); parcel.setDataPosition(0); destinationBitmap = Bitmap.CREATOR.createFromParcel(parcel);