6

編集:これらのバイトをtxtファイルに保存し、pngファイルとして保存すると、画像が表示されますが、ここで機能しないのはなぜですか...?

このコードを使用して、doInBackground() のバイト配列から画像を作成しています

String base64data=StringEscapeUtils.unescapeJava(IOUtils.toString(resp.getEntity().getContent()));
base64data=base64data.substring(1,base64data.length()-1);
JSONObject obj=new JSONObject(base64data);
JSONArray array=obj.getJSONArray("EMRTable");
JSONObject childobj=array.getJSONObject(0);
results=childobj.getString("DocumentInternalFormat");

および onPostExecute

if(jsondata!=null) {
    receiveData(jsondata);
}

例外がなくても、logcat にエラーはありませんが、画像が表示されません。私もこのようにしました

String data=(String)object;
data=data.trim();
byte[] base64converted=Base64.decode(data,Base64.DEFAULT);          

ImageView image=new ImageView(context);
image.setImageBitmap(bmp);
setContentView(image);

しかし、結果と同じ画像は表示されませんが、例外やエラーはありません。何が問題なのですか...

コメント行は、これらのバイトをテキスト ファイルに保存しようとしたときのもので、ファイルをプルすると、Windows のデフォルトの画像ビューアで画像が表示されます。

4

2 に答える 2

8

さまざまなリソースからビットマップを取得しながら、このコードを試してください...

BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeByteArray(base64converted,0,base64converted.length,options);

// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, 500, 500);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
Bitmap bmp1=BitmapFactory.decodeByteArray(base64converted,0,base64converted.length,options);

このリンクのチュートリアルに従ってくださいビットマップを表示する効率的な方法

于 2013-02-07T09:53:57.300 に答える
-2

コードから以下の行を削除して、もう一度やり直してください

base64data=base64data.substring(1,base64data.length()-1);
于 2013-02-04T06:51:01.590 に答える