从服务器获取图像并使用async http响应处理程序设置为imageview

时间:2016-02-21 05:26:11

标签: android rest get android-async-http

我的问题是如何从服务器获取图像并使用Async Http Response Handler设置为imageview。图像的JsonObject是“profile_image”,需要从Rest api获取并显示到我的ImageView中。

我的代码:

AsyncHttpClient client = new AsyncHttpClient();
        //private ProgressDialog Dialog = new ProgressDialog(post.this);
        List<String> userCredentials = UserUtils.getLoginDetails();
        client.addHeader("x-user-id", userCredentials.get(0));
        client.addHeader("x-auth-token", userCredentials.get(1));
        client.get("https://", new AsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {

                final String response = new String(responseBody);
                android.util.Log.e("Response", "" + response);

                try {
                    JSONObject jsonObject = new JSONObject(response);
                    JSONObject object = jsonObject.getJSONObject("user");
                    String attr1 = object.getString("name");
                    data = "" + attr1;
                    textView15.setText(data);

                    if (object.has("profession")) {
                        String attr2 = object.getString("profession");
                        data2 = "" + attr2;
                        textView16.setText(data2);
                    }
                    if(object.has("company")){
                        String attr3 = object.getString("company");
                        data3 = "" + attr3;
                     textView38.setText(data3);
                    }

                    if(object.has("profile_image")){

                    }
                    JSONObject jsonObject1 = object.getJSONObject("emails");
                    JSONArray jsonArray = jsonObject1.getJSONArray("address");
                    for (int i = 0; i < jsonArray.length(); i++) {
                        data += "\n"
                                + jsonArray.getJSONObject(i).getString("address")
                                .toString();




                       // data += " Name= "+ attr1 +"  \n ";
                    }
                    textView15.setText(data);
                    //Dialog.dismiss();
                } catch (JSONException e) {e.printStackTrace();}
            }

API代码:

 "user": {

                                                                      "profile_image": "https:////image/upload/v1455884587/endflvkyqv3ot37g4unc.png",
                                                                   "profile_public_id": "endflvkyqv3ot37g4unc"
                                                                    }
                                                                  }

1 个答案:

答案 0 :(得分:0)

使用Picasso从SERVER / URL加载图像:

但是,首先检查你的ImageResponse

在使用Picasso之前不要忘记添加Picasso库,For Library以及更多关于Picasso see here

if(object.has("profile_image")){
Picasso.with(this)
          .load("" + object.getString("profile_image"))
          .fit()
          .into(imageView);
}