我有一个类,在其中我有一个成员
我将此类用作发送数据的活动间传递的
为此,我扩展了
我能够使用read/write int/string发送基本数据类型。但是在编组
为此,我尝试将
我正在使用以下代码将我的
Drawable
。我将此类用作发送数据的活动间传递的
Parcelable
额外信息。为此,我扩展了
Parcelable
并实现了所需的函数。我能够使用read/write int/string发送基本数据类型。但是在编组
Drawable
对象时遇到了问题。为此,我尝试将
Drawable
转换为byte array
,但是出现了类转换异常。我正在使用以下代码将我的
Drawable
转换为字节数组: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));
运行此代码时出现了ClassCastException异常。
我们如何使用HashMap写入/传递Drawable?
是否有一种方法可以在Parcel中传递Drawable。
谢谢。
getBitmap()
默认返回Bitmap
,为什么你还要进行类型转换呢? - blizzardBitmapDrawable
被弃用了,有什么替代选项吗? - AdamMc331