2

これが私がRESTGET呼び出しを行うリンクです。 http://adtouch.cloudfoundry.com/rest/ad/barcode/529a927973654526a309a77986062566/image ブラウザで開くと、他のリンクにリダイレクトされ、画像が表示されます。この画像をAndroidに表示したい。この呼び出しで取得したコンテンツと、それをAndroidデバイスに表示する画像に変換する方法を特定できません。

これは私が行う残りの呼び出しです:

HttpClient httpclient = new DefaultHttpClient();  
String temp = "http://adtouch.cloudfoundry.com/rest/ad/barcode/529a927973654526a309a77986062566/image";
HttpGet request = new HttpGet(temp);
HttpResponse response = httpclient.execute(request);
ResponseHandler<String> handler = new BasicResponseHandler();
String result =  httpclient.execute(request, handler);
System.out.println(result);

この結果、次のような多数の文字シーケンスが作成されます。

(^( ?( ;QE??QE??ÊMÔâ1MT ??²¤i­@íù¨ùhÙQ¶ê??m7Í¡?mFÏ@3|µu]¿Þ§+Uò?\°Ñ³Qçý?o?MiUWt?*¯÷?ª9Jæ·û´Ý¿59_åùi¬Õq$jE¨)ÿ??Á@D°?©ËÒªÆß7Þ«?õ   q?/ÉR+Tr%F?¨(·LÙQ­9]¨Ê´í?½;}??5???¨ßE??º?ôúc÷ ?·éGÍíFæZ??M­K·ûÔè÷?Þ©<¥Û@Æ?ýÚ±üÕEJ7l O?Z³YêÄÒï¨ÕhK{}ë¹¾íZ?>U¨c}?RG@QGðüÍM2®>\·û´??í?l¨ÿ??xß«NUþón }Ênÿ??î­9UR???nÖ?Å·ýÚo?¿Ä»¿Þ©(

ImageViewに画像を設定する方法は知っていますが、問題はこの呼び出しから画像を取得する方法です。

4

1 に答える 1

4

のJavadocを見てくださいBitmapFactory。HTTP応答のエンティティでストリームをデコードする必要があります。

InputStream in = client.execute(request).getEntity().getContent();
Bitmap bmp = BitmapFactory.decode(in);
in.close();

ネットワーク操作はメインスレッドでは発生しないことに注意してください。コードからは、を使用するAsyncTaskかどうかは明確ではありませんが、使用する必要があります。onPostExecute()フックの画像を更新します。

于 2012-12-08T09:33:34.310 に答える