使用Picasso同时下载两个图像并使用Target。但是没有完成并加载图像

时间:2017-01-31 16:21:22

标签: android bitmap imageview picasso

所以我同时使用Picasso下载两张图片,如下所示:

 Picasso.with(this).load(Constants.SERVER_HOME_PAGE_TOP_IMAGE_URL).into(new Target() {
        @Override
        public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
            sLastBitmapLoadedDate = Calendar.getInstance();

            int h= (int) (Constants.PAGE_TOP_IMAGE_HEIGHT * densityMultiplier);
            int w= (int) (h * bitmap.getWidth()/((double) bitmap.getHeight()));
            sTipBitmap = Bitmap.createScaledBitmap(bitmap, w, h, true);

            Log.v("Image: ", "one");

            topImage.setImageBitmap(sTipBitmap);
        }

        @Override
        public void onBitmapFailed(Drawable errorDrawable) {
        }

        @Override
        public void onPrepareLoad(Drawable placeHolderDrawable) {
        }
    });

    Picasso.with(this).load(Constants.SERVER_HOME_PAGE_BOTTOM_IMAGE_URL).into(new Target() {
        @Override
        public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
            sLastBitmapLoadedDate = Calendar.getInstance();

            int h= (int) (Constants.PAGE_BOTTOM_IMAGE_HEIGHT * densityMultiplier);
            int w= (int) (h * bitmap.getWidth()/((double) bitmap.getHeight()));
            sAdBitmap = Bitmap.createScaledBitmap(bitmap, w, h, true);

            Log.v("Image: ", "two");

            bottomImage.setImageBitmap(sAdBitmap);
        }

        @Override
        public void onBitmapFailed(Drawable errorDrawable) {
        }

        @Override
        public void onPrepareLoad(Drawable placeHolderDrawable) {
        }
    });

我正在使用Target修改图像大小。所以我从来没有在两种情况下都使用onBitMapLoaded。如果我注释掉其中一个请求,那么它将加载图像并点击onBitMapLoaded,在那里我调整图像大小。

所以我确实以错误的方式解决这个问题。如果有人可以帮我解释我做错了什么。

谢谢!

1 个答案:

答案 0 :(得分:0)

我去过那儿。尝试用Picasso下载多张图片超过3天。但是我发现下载多个图像的最佳方法是使用文件下载程序库。 FileDownloader库是一个令人难以置信的选择,因为它允许同步和异步地下载队列中的多个图像。

作为快照,您可以使用此库将多个图像作为队列下载:

apply(array(unlist(df1), c(3, 2, 2)), c(1,2), mean)

此处提供了完整的使用指南:Wiki

此外,这是我用Picasso下载多张图片时提出的问题:Downloading images using Picasso creates incorrect images in cache, possible fix?