我目前正在使用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(在代码中我也试图完全跳过但没有结果),但我不知道怎么做(在线代码示例不起作用:()。
答案 0 :(得分:0)
问题在于我正在考虑自己想要更快地制作东西的图像,而不是因为毕加索自己处理这个问题而无缘无故地挤了堆。所以,只是删除了优化,我们走了。