-
Notifications
You must be signed in to change notification settings - Fork 399
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix Fresco progress problem #10
Comments
就是下载的进度,你可以在模拟器里面,把网络类型设置为 3g,就会发现变化了。当然,也不排除是图片加载库的问题,你用的 fresco 还是 glide? |
我测试的是fresco,用glide我以前也试过不准确,不过你glide用的方法我还没看,只是测试了fresco。用4g也试过了,毕竟我的图片可是有接近8M哦。你有时间可以试试看。http://ww3.sinaimg.cn/mw690/dd412be4gw1esr7nxekgag209f0h0b2f.gif |
我测试没问题呀,倒是 gif 图暂不支持 |
哦?那我再多测试几次看看,谢谢了。 |
多种网络确认了,还是不行。你看我打印出来的这个进度很明显是不正常的。26分58秒的时候开始load,27分10秒走到13%,隔了12秒,然后接下来的进度全在27分10秒,1秒之内全部走完。 |
对了,同时测试了glide 的下载进度是正常的,从1到100到可以正常打印,并且时间也正确。 |
你是在 glide 正常很好理解,它是在 http 响应读取数据的时候进行的统计。 |
也有问题。估计是他们还是不愿意实现,我去年就提过isseus了,他们建议我showing a progress bar: http://frescolib.org/docs/progress-bars.html#_ |
那就是 fresco 默认 progress update 有问题了。这倒也好办。 首先这里肯定不要用它们的 progress bar,因为显示图片压根没用 fresco。但是我们可以用 glide 的支持方式,毕竟 fresco 支持指定 http client,所以我们加个 intercepter,在读取 http 响应数据的时候进行统计,就可以了。 would you like to create a pr for this feature? :) |
haha,let me see see. |
哎,搞半天,OkHttp的进度也是不够完美。看这个类Progress |
progress 是做一次转发,不会先全部读到,再切分返回。如果你真的遇到了时间更长,那应该是其他的问题。 |
|
两者的实现有点区别,Glide是每次加载图片的时候直接针对当前请求做进度的拦截。而Fresco是在初始化的时候ImagePipelineConfig中配置。不知道跟这个是否有影响。 |
Fresco 进度监听确实有问题,尤其是下载国外图片时,进度条很快到达了 100,但图片根本没下载完。 |
所以现在需要进度条的我都是用Glide。一个项目里面用了fresco和glide。【允悲】 |
@06peng 能否花点时间研究如何解决?我的思路如下:
|
fresco无法针对每个图片拦截okhttp,只能针对底层的网络框架,但它下载完成后,还做了解码那一系列的操作也消耗了一定的时间。。。感觉无法破。。。在fresco官网提的issues都被close了。 |
首先感谢作者这么快添加了进度条显示。然后这个进度并不完美,似乎不是下载的进度,而是解码或者其他东西的进度,我试了好几张大图,一开始好久都不返回进度,后面瞬间就完成了。作者有兴趣的话可以确认一下这个问题,也许是我某些步骤弄错了-_-
The text was updated successfully, but these errors were encountered: