Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android decodeStream:图像是先下载然后缩小的吗?_Android_Performance_Bitmap - Fatal编程技术网

Android decodeStream:图像是先下载然后缩小的吗?

Android decodeStream:图像是先下载然后缩小的吗?,android,performance,bitmap,Android,Performance,Bitmap,我正在从我的应用程序中的URL下载一些图像,当我将一个URL解码为位图,并将BitmapFactoryOptions inSampleSize设置为>0时,我只是觉得这需要太多时间 问题是解码时间太长。。在带有服务器的本地网络上,我将inSampleSize设置为8,花大约1.2秒解码 为了进行比较,我对不带选项的decodeStreaminputStream进行了计时:执行时间大致相同,为1.1-1.2秒 这个特殊的图像大约是2.5MB,我知道一开始它有点笨重,但是现在使用大的图像来测试性能是

我正在从我的应用程序中的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跳过一个字节有多大意义?想想我的想法。这也很简单!