我有一門課,我有一個Drawable
作爲成員。
我正在使用這個類來發送數據作爲Parcelable
額外的活動。如何使用Parcelable傳遞Drawable
爲此,我擴展了parceble,並實現了所需的功能。
我能夠使用讀/寫int /字符串發送基本數據類型。
但我編組Drawable對象時遇到問題。
爲此,我試圖將Drawable
轉換爲byte array
,但我得到了類轉換異常。
我使用下面的代碼我可繪製隱蔽到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);
而且轉換字節數組繪製我用下面的代碼:
final int contentBytesLen = in.readInt();
byte[] contentBytes = new byte[contentBytesLen];
in.readByteArray(contentBytes);
mMyDrawable = new BitmapDrawable(BitmapFactory.decodeByteArray(contentBytes, 0, contentBytes.length));
當我運行此我得到類拋出異常。
我們如何使用HashMap寫/傳遞Drawable?
有沒有什麼辦法可以在包裹中傳遞Drawable。
謝謝。
因此,例如,如果我有一個位圖和其他類型的對象,我不必在包裹中寫入圖像?它會爲我找到所有的東西和花花公子? – eddiecubed 2013-10-11 15:52:58
@yorkw'getBitmap()'默認返回'Bitmap',爲什麼你再次類型化? – blizzard 2015-03-07 05:39:09
現在是否有替代方案,因爲'BitmapDrawable'已被棄用? – AdamMc331 2015-08-17 02:37:17