android - 通过REST调用获取图像并在android上显示

标签 android rest

这是我发出 REST GET 调用的链接。 http://adtouch.cloudfoundry.com/rest/ad/barcode/529a927973654526a309a77986062566/image 在浏览器中打开它时,它会重定向到其他链接,并显示一个图像。 我想在安卓上显示这个图像。我无法确定通过此调用获得的内容是什么以及如何将其转换为要在 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,但问题是如何从该调用中获取图像。

最佳答案

查看 Javadoc BitmapFactory 。您必须解码 HTTP 响应实体中的流:

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

请注意,网络操作不应发生在主线程中。从您的代码中不清楚您是否使用 AsyncTask或不,但你应该。更新 onPostExecute() Hook 中的图像。

关于android - 通过REST调用获取图像并在android上显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13776172/

相关文章:

javascript - 我的 REST 中的 @ModelAttribute 为空

java - Rest API Spring 应用程序中选项的最佳使用

java - android中带圆角的按钮

android - 如何构建打包在 Android Sources 中的 llvm?

spring - HTTP 状态 401 - 需要完全身份验证才能访问此资源

java - Android Volley NoConnectionError : java. io.InterruptedIOException

rest - 更新/创建分层资源 REST

android - 如何防止对 Android APK 文件进行逆向工程以保护代码?

c# - 删除 Xamarin.Forms 中 ListView GroupHeaders 之间不需要的间距

java - 尝试在回收 View 中显示用户信息 - Firebase