返回信息流一个页面需要等图片下载完毕后加载视图,有时候需要等待的时间太长。我的做法是先加载一张本地的图片表示正在加载,下载完成后刷新,但问题是不知道要下载的图片的大小,特别是长宽比例的问题。请问有没有好的解决办法?
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #23956同步于 2015/7/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
请问如何在下载前获取图片尺寸大小?
finix
2015/7/29镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
谢谢回复。下载后刷新,页面布局经常要跳动一下,给用户的体验不太好。一直等着图片出来的话又太慢。。想了想这个可能只能通过服务器提供api来实现了
【 在 iwsy 的大作中提到: 】
: 这个问题无解,不可能在下载前就知道尺寸的。可以先按照默认大小显示默认图片,下载好了之后再改变大小就可以了
: 发自「贵邮」
三种方案
一是服务器提前给大小,这种最完美。
二是在界面上只显示固定大小的缩略图,大图需要点击进入界面查看,优点是界面可以提前加载好不会出现抖动,缺点是看图需要多一个步骤,参考微信朋友圈和微博等
三是先加载固定大小的PlaceHolder图,然后再刷新,缺点是界面会抖动,并且不适用ListView等会回收的情况,优点是不用跳转就能显示完整大图,参考知乎。
谢谢回复!我现在用的是第三种方案,列表中所有图片下载完成之后刷新。请教一下ListView的回收问题指的是什么?
【 在 dss886 的大作中提到: 】
: 三种方案
: 一是服务器提前给大小,这种最完美。
: 二是在界面上只显示固定大小的缩略图,大图需要点击进入界面查看,优点是界面可以提前加载好不会出现抖动,缺点是看图需要多一个步骤,参考微信朋友圈和微博等
: ...................
这种话题在当年瀑布流火热时讨论过无数。最被认可的方案是服务器给图片大小。
实在无法给出,一般采取的是所有图片都加载好之前不渲染页面,页面上只有一个loading图案,都加载好,按照图片尺寸做排版。
我不知道你是做Android还是iOS,Android的话ListView有很多个Item,当滑动列表,某一个item不可见的时候,这个对象会被回收再利用,如果用第三种方案滑动列表的时候就会不断抖动
【 在 finix 的大作中提到: 】
: 谢谢回复!我现在用的是第三种方案,列表中所有图片下载完成之后刷新。请教一下ListView的回收问题指的是什么?
是安卓,我的listview中的adapter绑定了自定义的数据类型,其中持有要显示图片的引用。一开始引用指向placeholder图片,下载完成后指向下载得到的图片,这样还需要考虑回收的问题吗?实际运行中好像没有问题。这样做会有其他性能上的问题吗?
【 在 dss886 的大作中提到: 】
: 我不知道你是做Android还是iOS,Android的话ListView有很多个Item,当滑动列表,某一个item不可见的时候,这个对象会被回收再利用,如果用第三种方案滑动列表的时候就会不断抖动
: