Androidアプリで使用したいバイト配列として、サーバーのデータベースに多数の画像が保存されています。
バイト配列はWindowsPhone7アプリの画像から作成されたため、.NETのWriteableBitmap(wbmp)を使用してIsolatedStorageFileStream(isfs)に保存します。
wbmp.SaveJpeg(isfs, newWidth, newHeight, 0, 90);
Androidアプリには、画像の1つを表示するために使用しようとしているImageViewウィジェットがあります。BitmapFactoryを使用してバイト配列(ペイロード)をデコードしようとしました:
Bitmap bmp = BitmapFactory.decodeByteArray(payload, 0, payload.length);
img1.setImageBitmap(bmp);
しかし、それは機能しません-デバッガーをステップスルーすると、画像が表示されず、bmpがnullになります。これは、BitmapFactoryがバイト配列を正しくデコードできなかったことを示しているようです。
Windows Phone 7の場合、byte [](リアリティ)をMemoryStream(mstream)にロードし、そのMemoryStreamを使用してBitmap(bmp)のSetSourceメソッドを呼び出します。
mstream = new MemoryStream(reality);
bmp.SetSource(mstream);
そこで、Androidで、バイト配列をMemoryFileに読み込んでから、BitmapFactoryを使用してMemoryFileのInputStreamをロードしてみました。
MemoryFile mf;
try {
mf = new MemoryFile("myFile", payload.length);
mf.writeBytes(payload, 0, 0, payload.length);
InputStream is = mf.getInputStream();
Bitmap bmp = BitmapFactory.decodeStream(is);
img1.setImageBitmap(bmp);
} catch (IOException e) {
e.printStackTrace();
}
しかし、これはまだ機能しません。
Androidでこの形式のバイト配列を正常にロードして画像を表示するにはどうすればよいですか?