我有一堂课,我有Drawable
一个会员。
我使用这个类作为Parcelable
额外的跨活动发送数据。
为此,我扩展了 parceble,并实现了所需的功能。
我能够使用读/写 int/string 发送基本数据类型。
但是我在编组 Drawable 对象时遇到了问题。
为此,我尝试将其转换Drawable
为byte array
,但我得到了类强制转换异常。
我正在使用以下代码将我的 Drawable 转换为 Byte 数组:
Bitmap bitmap = (Bitmap)((BitmapDrawable) mMyDrawable).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[]byteArray = stream.toByteArray();
out.writeInt(byteArray.length);
out.writeByteArray(byteArray);
并将字节数组转换为 Drawable 我使用以下代码:
final int contentBytesLen = in.readInt();
byte[] contentBytes = new byte[contentBytesLen];
in.readByteArray(contentBytes);
mMyDrawable = new BitmapDrawable(BitmapFactory.decodeByteArray(contentBytes, 0, contentBytes.length));
当我运行它时,我得到 Class cast 异常。
我们如何使用 HashMap 编写/传递 Drawable?
有什么方法可以在 Parcel 中传递 Drawable。
谢谢。