用Picasso下载大量图像 - 内存不足

时间:2014-10-17 02:46:30

标签: android android-image picasso

我目前正在使用Picasso下载这样的图片:

ImageView imageView = (ImageView) rootView.findViewById(R.id.imagePreview);
imageView.setAdjustViewBounds(true);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

Transformation transformation = new Transformation() {

    @Override public Bitmap transform(Bitmap source) {
        int targetHeight = 500;

        double aspectRatio = (double) source.getWidth() / (double) source.getHeight();
        int targetWidth = (int) (targetHeight * aspectRatio);
        Bitmap result = Bitmap.createScaledBitmap(source, targetWidth, targetHeight, false);
        if (result != source) {
            // Same bitmap is returned if sizes are the same
            source.recycle();
        }
        return result;
     }

     @Override public String key() {
         return "transformation" + " desiredWidth";
     }
};

RequestCreator requestCreator;
Picasso picasso = Picasso.with(context);
requestCreator = picasso
                    .load(resource)
                    .transform(transformation)
                    .skipMemoryCache()
                    .error(R.drawable.ic_placeholder_ricerca);

我甚至正在调整图像大小,但仍然不够。问题是我有一个无尽的listView,所以我继续下载图像,并在一个遗嘱之后内存充满。有什么想法如何预防这个问题?我想放大memoryCache(在代码中我也试图完全跳过但没有结果),但我不知道怎么做(在线代码示例不起作用:()。

1 个答案:

答案 0 :(得分:0)

问题在于我正在考虑自己想要更快地制作东西的图像,而不是因为毕加索自己处理这个问题而无缘无故地挤了堆。所以,只是删除了优化,我们走了。