我正在使用毕加索在listview中加载一堆图像。我开始获得预期的OOM激活,因为我只是在没有调整大小或适合的情况下加载它们。
所有图片都是从互联网上下载的,其中一些很小但有些图片格外大。我不能轻易地使用fit()或大小,因为我希望图像保持基于图像视图宽度的宽高比,该宽度设置为匹配父级,高度是换行内容。我已经读过我应该创建一个自定义转换对象,但问题是我不知道列表视图中的图像视图宽度getView方法(因为它仍然没有消失而报告为0)
第一个问题:当使用调整大小或适合时,毕加索会重新调整磁盘上的实际图像吗?或者它是否保留下载的大小,然后在加载时调整大小。 注意:我厌倦了修复例如.resize(300,300)但在加载那个大图像时仍然有OOM。 5615x374是大小:)这就是为什么我要问毕加索是否在磁盘上调整图像大小。
第二个问题:如何修复OOM,尝试获取屏幕大小并将其用于自定义转换中的图像视图大小并保留纵横比?或者当面对这么大的图像时该怎么办...我的手机只需要512 ram 4.0 android即可。
答案 0 :(得分:0)
我所有问题的答案是:https://code.google.com/p/android-query/wiki/API
具体来说:https://code.google.com/p/android-query/wiki/ImageLoading
我在Picasso GitHub上发现了一些相同问题的门票,但不幸的是它们从未被解决过......没有自定义转换可以帮助我与毕加索合作,因为我需要在下载时调整图像大小。
AndroidQuery处理了所有这些,而且事实证明它是更好的性能vise。另外我个人觉得接口和Picasso一样好,如果不是更好的话。此外,AQuerry还有毕加索所提供的许多其他有用的功能。