Java Android上的渐进式图像加载
我有一个ViewPager,我用它来浏览几个图像视图(大约1000个),每个视图都加载一个全屏位图。我正在使用Java Android上的渐进式图像加载,java,android,bitmap,loading,partial,Java,Android,Bitmap,Loading,Partial,我有一个ViewPager,我用它来浏览几个图像视图(大约1000个),每个视图都加载一个全屏位图。我正在使用选项对图像进行二次采样。inSampleSize并使用memcache提高性能,但这仍然不够快。我试图避免的是用户在快速浏览视图时看到空白的图像视图 我想知道是否有办法在加载请求的图像时为部分渲染的图像(或低质量)提供服务 我注意到Android gallery中包含了类似的内容(放大和缩小时尤其明显,加载看起来类似于在web上加载渐进式JPEG),但我还没有找到任何相关信息。Andro
选项对图像进行二次采样。inSampleSize
并使用memcache提高性能,但这仍然不够快。我试图避免的是用户在快速浏览视图时看到空白的图像视图
我想知道是否有办法在加载请求的图像时为部分渲染的图像(或低质量)提供服务
我注意到Android gallery中包含了类似的内容(放大和缩小时尤其明显,加载看起来类似于在web上加载渐进式JPEG),但我还没有找到任何相关信息。Android目前没有提供在解码过程中获取中间图像的方法(例如,渐进式JPEG)。您只能获得一张最终图像 您已经在使用inSampleSize获取更粗糙的图像版本。这使解码速度有望更快,尽管没有时间保证:它在引擎盖下使用libjpeg。您是否测量了每个图像解码所需的时间?您是否尝试将inPreferQualityOverSpeed设置为false?是否重复使用相同的位图(也可能加快解码速度)。您还可以检查inSampleSize是否使解码速度有所不同
在任何情况下,如果您需要同一图像的更详细版本,则获取低质量图像的任何工作都会很快丢失,因为您必须从头开始解码。因此,您希望将解码限制为可见图像及其近邻,以便您可以在没有空白图像的情况下滚动。oesn默认情况下不会这样做,有一些方法可以对图像执行部分解码。不过,这肯定不会比只加载完整图像快。@Cam提到了Gallery应用程序-它首先从MediaStore加载一个更小的、以前调整大小的图像版本。