私の問題は: byte[] を画像に変換しようとしています。byte[] は JSON から取得され、次の形式になっています。
「4oCwUE5HDQoaCgAAAA1JSERSAAAAfwAAAFAIBgAAADBHwqrDsAAAAAlwSFlzAAAAJwAAACcBKgnigJhPAAAgAElEQVR4xZPCrMK9ecWSZcOZfcOfw7c5w5vCvW/CqXp...」さらに 100 行続きます。
問題が発生するコード:
String jsonString = EntityUtils.toString(httpEntity);
// again some simple validation around the returned string
if(jsonString != null && jsonString.length() != 0) // checking string returned from service to grab id
{
JSONArray jsonArray = new JSONArray(jsonString);
for(int i=0; i< jsonArray.length(); i++)
{
HashMap<String, Object> map = new HashMap<String, Object>();
// you need to store the results somewhere and pass it on to the player list
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
int id = jsonObject.getInt("id");
String name = jsonObject.getString("name");
byte[] image = jsonObject.getString("image").getBytes();
String base64 = jsonObject.getString("image");
try {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
byte[] decodedString = Base64.decode(base64, Base64.DEFAULT);
String images = new String(decodedString);
Bitmap decodedByte = Utils.getBitmapFromString(images);
decodedByte.compress(Bitmap.CompressFormat.PNG, 100, stream);
Log.d("DECODEDBYTE IS: ", decodedByte.toString());
if (decodedByte != null) {
ImageView imgView = (ImageView) findViewById(R.id.image);
imgView.setImageBitmap(decodedByte);
}
} catch (Exception e) {
Log.d("Exception", e.toString());
}
map.put("name", name.toString());
map.put("image", image);
Log.d("JSON OBJECTS:", jsonObject.toString());
Log.d("WHATS IN MAP:", map.toString());
playersList.add(map);
}
decodedByte (ビットマップ) で NULL 値を取得する前に、次のことがわかりました。
ストリームをデコードできません: FileNotFoundException。
私はすでにこの 2 日間で苦労しており、これを機能させることはできません!
何が間違っている可能性がありますか?
[編集] これらはデバッガーからの値です。
jsonString "[{"id":"16","clubid":"1","name":"Theo Walcott","password":"0000","image":"4oCwUE5HDQoaCgAAAA1JSERS...WeKAsGfDngAAAABJRU5Ewq5CYOKAmg==" ,"lastupdated":"2013-08-22 09:31:58","isDeleted":"0"}]" (id=830043725448) マップ HashMap (id=830043562472) name "Theo Walcott" (id=830043434760)
parameters ArrayList (id=830043725168) arg0 String[0] (id=830043671992) stream ByteArrayOutputStream (id=830043562528)
decodedString (id=830045128536) images "‰PNG\r\n\n
そしてLogCat:
10-30 14:02:57.717: D/JSON オブジェクト:(14452): {"id":"24","image":"4oCwUE5HDQoaCgA...CFcKpD8WTw5 10-30 14:02:57.717: D/WHATS IN MAP:(14452): {image=[B@428e6d20, name=Ryo Miyaichi} 10-30 14:03:03.747: E/BitmapFactory(14452): ストリームをデコードできません: java.io.FileNotFoundException: /: オープンに失敗しました: EISDIR (ディレクトリです) 10-30 14:03:03.747: I/System.out(14452): resolveUri が不正なビットマップ uri で失敗しました