从网址

时间:2015-07-31 13:26:08

标签: java android json android-image

我试图从JSON的响应中下载5个图像,我已经设法获取图像的URL,并且如果我将其中一个图像位置硬编码到代码中,则能够下载图像。

我如何才能下载所有5张图片。

以下是请求代码:

public void getImage(String url, final ImageView imageView) {
    ImageRequest requestImage = new ImageRequest(url, new Response.Listener<Bitmap>() {
        @Override
        public void onResponse(Bitmap response) {
            System.out.println("Image Url is: " + response);
            imageView.setImageBitmap(response);
            System.out.println();

        }
    }, 0, 0, null, null);
    queue.add(requestImage);
}

以下是从响应中传递图像Url并根据ID在xml中设置图像的代码

仅供参考:bp_promo1是添加到请求中的硬编码图像

try {

            System.out.println("Size of PromoItemsArray is: " + home.promoItemsArray.size());


            for (int i = 0; i < home.promoItemsArray.size(); i++) {
                String imageUrl = home.promoItemsArray.get(i).imageUrl;

                request.getImage(imageUrl, bp_promo1);
            }
        } catch (Exception e) {
            System.out.println("Error is: " + e + " - Exception is it: " + e.getStackTrace()[2].getLineNumber());
        }
}

我的想法是将所有五个图像添加到一个数组中,然后将数组中的每个项目传递给网络调用?

由于

1 个答案:

答案 0 :(得分:0)

我设法解决问题的方法如下?

public void getImage(String url, final Object object) {
    ImageLoader.ImageCache imageCache = new BitmapLruCache();
    ImageLoader imageLoader = new ImageLoader(queue, imageCache);
    imageLoader.get(url, new ImageLoader.ImageListener() {
        @Override
        public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate) {


            Bitmap responseBitmap = response.getBitmap();
            ImageView imageView;
            ImageButton imageButton;
            HorizontalScrollView horizontalScrollView;

            if (object instanceof ImageView) {

                imageView = (ImageView) object;
                imageView.setImageBitmap(responseBitmap);

            } else if (object instanceof ImageButton) {

                imageButton = (ImageButton) object;
                imageButton.setImageBitmap(responseBitmap);

            } else if (object instanceof HorizontalScrollView) {

                horizontalScrollView = (HorizontalScrollView) object;
                horizontalScrollView.setBackground(new BitmapDrawable(getResources(), responseBitmap));

            }
        }

我刚刚通过一个Object并根据Object类型的来源

操作代码