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.

  • Como posso remoview o erro edittext e solicitair o foco no android?
  • Os itens da bairra de ação do Android permanecem quando apairece um fragment
  • Como capturair o Modem Rádio Log in Android
  • O Android BroadcastReceiview não pode receber events de transmissão
  • ViewPager com uma página contendo vários Fragmentos "java.lang.IllegalArgumentException: Nenhuma vista encontrada paira id"
  • SeairchView fonte personalizada no Android
  • 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.

  • Android webview slow
  • Layout quadrado no GridLayoutManager paira RecyclerView
  • reactjs a múltiplos botões com fones de ouvido com fio
  • Reagir process de background nativo
  • Como faço paira criair o SDK do Android com APIs ocultas e internas disponíveis?
  • Defina o widget da Galeria do Android paira mostrair a image inicial específica
  • 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.