私はクラスとして、Drawable
をメンバーとして持っています。
このクラスは、アクティビティ間でデータを送信するために、Parcelable
を追加して使用しています。パーセルブルを使ってDrawableを渡す方法
私はそれをparcebleを拡張し、必要な機能を実装しました。
私はread/write int/stringを使用して基本データ型を送信できます。
しかし、Drawableオブジェクトのマーシャリング中に問題が発生しています。
私はDrawable
をbyte array
に変換しようとしましたが、クラスキャスト例外が発生しています。私は取得し、これを実行すると
final int contentBytesLen = in.readInt();
byte[] contentBytes = new byte[contentBytesLen];
in.readByteArray(contentBytes);
mMyDrawable = new BitmapDrawable(BitmapFactory.decodeByteArray(contentBytes, 0, contentBytes.length));
:
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);
、私は次のコードを使用していDrawableのためにバイト配列を変換するために:私はバイト配列に私のDrawableのをひそかに次のコードを使用しています
クラスキャスト例外。
HashMapを使用してDrawableを作成/渡すにはどうすればよいですか?
Drawable in Parcelを渡す方法はありますか?
ありがとうございました。
たとえば、ビットマップやその他のタイプのオブジェクトがある場合、イメージをパーセルに書き込む必要はありませんか?それは私のためにすべての見つけるとダンディーが動作しますか? – eddiecubed
@yorkw 'getBitmap()'はデフォルトで 'Bitmap'を返します、なぜあなたは再度型キャストするのですか? – blizzard
'BitmapDrawable'は廃止されました。 – AdamMc331