2014-10-01 139 views
0

所以我有6类图片,每个类别都有150-200张图片。每张图片的大小为1MB-10MB。我不知道如何优化图片的加载。我的ViewPager从1个类别中同时显示4张图片,并且可以滑动该类别的所有图片。 有人能带我走向正确的方向吗?即时通讯新的android /编程,我发现的一切都是复杂的。在ViewPager中延迟加载图片

谢谢。

编辑:我也有一个270MB的电影,我不知道如何加载,所以感觉“快”。

回答

0

首先,使用FragmentStatePagerAdapter作为ViewPager。这将防止由于大量图像导致的OutOfMemory错误。

http://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html

其次,使用Picasso您的图像加载,并考虑调整图片大小了,因为你可能并不需要全分辨率为他们好看。

https://github.com/square/picasso

;第三,如果你可以让用户选择从安装的应用程序列表中他最喜欢的视频播放器,你应该这样做。

Android intent for playing video?

+0

我已经调整我的图像分辨率,我需要感谢。但我现在的问题是,我所有的图像都是在我第一次调用视图寻呼机时加载的,而不仅仅是显示的4-5。 – 2014-10-01 09:01:54

+0

你是如何实现ViewPager的适配器的? – 2014-10-01 09:03:01

+0

当你问我发现这个:pager.setOffscreenPageLimit(adapter.getCount());并且硬件加速被禁用。解决了我的问题。 无论如何感谢 – 2014-10-01 11:03:27

3

我已经使用这个库无数次,它会自动在用户以后 返回查看缓存图像。

Universial image loader

+0

同样在这里。我已经很多次使用过这个库了,它真的很棒。推荐的! – 2014-10-01 07:51:24

+0

我现在的问题是,当第一次调用ViewPager时,它会同时加载所有图片。另外,方法destroyItem dos不会被调用。 – 2014-10-01 08:47:34

+0

你有没有试过用这个库运行内存分析工具(MAT)?当图像数量更多时,该库的HashMap子对象数量增加3倍。这可能会导致内存泄漏。 – 2014-10-01 09:05:43