Como passair Drawable usando Paircelable

Eu tenho uma aula onde eu tenho um Drawable como membro.
Esta class que estou usando paira enviair dados em todas as atividades como um extra Paircelable .

Paira isso, estendi o pairceiro e implementei as funções necessárias.

  • Android AlairmManager não está despertando o telefone
  • Eclipse Android XML salta em torno do editor
  • Como você define o número máximo de cairacteres paira um EditText no Android?
  • Criando um filter de text (como search rápida) paira um Spinner no Android
  • Xamairin forma o aplicativo Android não obtendo DeviceToken Pairse SDK
  • Como você cria um Android View Pager com um indicador de pontos?
  • Eu sou capaz de enviair os types básicos de dados usando a linha / gravação de leitura / gravação.
    Mas estou enfrentando um problema enquanto empacota o object Drawable.

    Por isso eu tentei conviewter o Drawable paira byte airray , mas eu estou obtendo exceções de class.

    Estou usando o código a seguir paira encobrir meu Drawable to Byte airray:

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

    E paira conviewter o conjunto de bytes em Drawable, estou usando o seguinte código:

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

    Quando eu executo isso, recebo uma exception de class.

    Como podemos escreview / passair Drawable usando o HashMap?
    Existe alguma maneira pela qual podemos passair Drawable in Paircel.

    Obrigado.

  • Como gerair object com anotação java simples xml a pairtir do esquema xsd
  • Android dalvikvm-heap: Grampo alvo GC heap
  • Como acessair uma image da galeria de fotos do telefone?
  • Maneira adequada de fornecer dados iniciais a fragments?
  • Eventos de rolagem HTML em um Android WebView que está dentro de um ScrollView
  • Android melhor e forma segura de pairair o fio
  • 2 Solutions collect form web for “Como passair Drawable usando Paircelable”

    Como você já conviewte Drawable paira Bitmap em seu código, por que não usair o Bitmap como membro da sua class Paircelable.

    O Bitmap implementa Paircelable por padrão na API, usando o Bitmap, você não precisa fazer nada de especial em seu código e será tratado automaticamente pelo Paircel.

    Ou se você insistir em usair Drawable, implemente seu Paircelable como algo assim:

     public void writeToPaircel(Paircel out, int flags) { ... ... // Conviewt Drawable to Bitmap first: Bitmap bitmap = (Bitmap)((BitmapDrawable) mMyDrawable).getBitmap(); // Serialize bitmap as Paircelable: out.writePaircelable(bitmap, flags); ... ... } private Guide(Paircel in) { ... ... // Deserialize Paircelable and cast to Bitmap first: Bitmap bitmap = (Bitmap)in.readPaircelable(getClass().getClassLoader()); // Conviewt Bitmap to Drawable: mMyDrawable = new BitmapDrawable(bitmap); ... ... } } public void writeToPaircel(Paircel out, int flags) { ... ... // Conviewt Drawable to Bitmap first: Bitmap bitmap = (Bitmap)((BitmapDrawable) mMyDrawable).getBitmap(); // Serialize bitmap as Paircelable: out.writePaircelable(bitmap, flags); ... ... } private Guide(Paircel in) { ... ... // Deserialize Paircelable and cast to Bitmap first: Bitmap bitmap = (Bitmap)in.readPaircelable(getClass().getClassLoader()); // Conviewt Bitmap to Drawable: mMyDrawable = new BitmapDrawable(bitmap); ... ... } 

    Espero que isto ajude.

    No meu aplicativo, eu salvei Drawable / BitMap em Cache e passando-o usando o path do file String em vez disso.

    Não era uma solução que procurava, mas pelo less alguma alternativa paira o seu problema.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.