Comment faire passer Drawable en utilisant Parcelable

J'ai une classe où j'ai un Drawable en tant que membre.
Cette classe que j'utilise pour envoyer des données à travers des activités comme un Parcelable supplémentaire.

Pour ce que j'ai prolongé la parceble, et mis en œuvre les fonctions requises.

Je suis en mesure d'envoyer les types de données de base à l'aide de lire/écrire int/string.
Mais je suis face à problème lors de regroupement de l'objet Dessiné.

Pour que j'ai essayé de convertir le Drawable à byte arraymais je suis de la classe fonte des Exceptions.

Je suis à l'aide de code suivant pour convertir mes Dessiné au tableau d'Octets:

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);

Et de convertir un tableau d'octets à Drawable je suis à l'aide de code suivant:

final int contentBytesLen = in.readInt();
byte[] contentBytes = new byte[contentBytesLen];
in.readByteArray(contentBytes);
mMyDrawable = new BitmapDrawable(BitmapFactory.decodeByteArray(contentBytes, 0, contentBytes.length));

Lorsque je l'exécute j'obtiens Classe cast exception.

Comment pouvons-nous écrire/pass Dessinés à l'aide de la table de hachage?
Est-il un moyen par lequel nous pouvons passer Drawable dans la Parcelle.

Grâce.

source d'informationauteur User7723337 | 2012-04-09