Android decodeStream:图像是先下载然后缩小的吗?
我正在从我的应用程序中的URL下载一些图像,当我将一个URL解码为位图,并将BitmapFactoryOptions inSampleSize设置为>0时,我只是觉得这需要太多时间 问题是解码时间太长。。在带有服务器的本地网络上,我将inSampleSize设置为8,花大约1.2秒解码 为了进行比较,我对不带选项的decodeStreaminputStream进行了计时:执行时间大致相同,为1.1-1.2秒 这个特殊的图像大约是2.5MB,我知道一开始它有点笨重,但是现在使用大的图像来测试性能是很好的Android decodeStream:图像是先下载然后缩小的吗?,android,performance,bitmap,Android,Performance,Bitmap,我正在从我的应用程序中的URL下载一些图像,当我将一个URL解码为位图,并将BitmapFactoryOptions inSampleSize设置为>0时,我只是觉得这需要太多时间 问题是解码时间太长。。在带有服务器的本地网络上,我将inSampleSize设置为8,花大约1.2秒解码 为了进行比较,我对不带选项的decodeStreaminputStream进行了计时:执行时间大致相同,为1.1-1.2秒 这个特殊的图像大约是2.5MB,我知道一开始它有点笨重,但是现在使用大的图像来测试性能是
我的问题是,decodeStream是下载整个图像,然后使用opts inSampleSize参数缩小位图尺寸,还是应该动态缩小?i、 e.由于我的inSampleSize参数,它不是直接下载2.5 MB,而是直接下载其中的1/8。它下载整个图像,然后将其缩小。如果您想避免通过移动互联网连接下载2.5MB,您必须使用后端服务器,您可以使用PHP将url传递给该服务器。然后,它下载图像并将图像的较小版本发送到你的应用程序。它下载整个图像,然后将其缩小。你确定吗?我想它会在下载时下载并调整大小。完成下载后,它不会首先调整大小。无论如何所有都必须下载。感谢快速回复。我看到人们使用FilterInputStream包装inputStream,它实现了skip方法。。不知道它是如何工作的,但也许可以使用skip来跳过每N个字节?减少下载量?@greenapps我很确定!但是如果您在文档中找不到这个细节,您必须使用网络嗅探器来确定。@vankiz跳过一个字节有多大意义?想想我的想法。这也很简单!