私はこれを行おうとして何年も探し回っていましたが、ビットマップを表示できません。ID で呼び出す Web サービスがあり、文字列 (img) に保存する BLOB イメージを返します。
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http:site.com?GETBLOB&__blobRef=1&USER_ID=6379");
HttpResponse response = httpclient.execute(httpget);
BufferedReader in = new BufferedReader(new
InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
while ((line = in.readLine()) != null)
{
sb.append(line + NL);
}
in.close();
img = sb.toString();
文字列 img には、テキストビューに出力したときに有効な結果と思われるものが含まれているため、上記のコードが正常に機能していると確信しています。問題は、その文字列をビットマップに変換することです。私は多くの方法を試しましたが、私が見つけたものから、これがそれを行うための最良の方法であるようです.
byte[] decodedString = Base64.decode(img, Base64.DEFAULT);
bm = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
ImageView imgbox = (ImageView)findViewById(R.id.imagebox);
imgbox.setImageBitmap(bm);
これは私にとってはうまくいきません。私が試したほとんどの方法では、何も表示されませんが、この特定の方法では、ロード時にアプリがクラッシュします (try/catch があっても)。