Tengo una clase donde tengo un Drawable
como miembro.
Esta clase la utilizo para enviar datos a través de actividades como Parcelable
extra.Cómo pasar Drawable usando Parcelable
Para eso he extendido el parceble, e implementado las funciones requeridas.
Puedo enviar los tipos de datos básicos usando leer/escribir int/cadena.
Pero estoy enfrentando un problema al ordenar el objeto Drawable.
Para eso intenté convertir el Drawable
en byte array
, pero recibo excepciones de cast de clase.
Estoy utilizando el código siguiente para convertir mi Disponibles a matriz de bytes:
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);
Y para convertir la matriz de bytes a DRAWABLE estoy usando siguiente código:
final int contentBytesLen = in.readInt();
byte[] contentBytes = new byte[contentBytesLen];
in.readByteArray(contentBytes);
mMyDrawable = new BitmapDrawable(BitmapFactory.decodeByteArray(contentBytes, 0, contentBytes.length));
Cuando corro esto me sale Excepción de lanzamiento de clase
¿Cómo podemos escribir/pasar Drawable usando el HashMap?
¿Hay alguna manera por la cual podamos pasar Drawable in Parcel.
Gracias.
Entonces, por ejemplo, si tengo un objeto con un mapa de bits y otros tipos, ¿no tengo que escribir la imagen en el paquete? y va a funcionar todo hallazgo y excelente para mí? – eddiecubed
@yorkw 'getBitmap()' devuelve 'Bitmap' de forma predeterminada, ¿Por qué está encasillando de nuevo? – blizzard
¿Hay una alternativa para esto ahora que 'BitmapDrawable' está en desuso? – AdamMc331