iOS开发:加载、滑动翻阅大量图片解决方案
常规思路流程
点击任意小图后:
1.首先制作scrollview框架:大小2个scrollview,小的用于手势缩放单一图片,大的横向依次加载全部照片
2.制作好scrollview框架后,加载照片
3.一切准备就绪跳转页面呈现给用户选择的大图
加载图片这一步,若相册内就10几张照片,那么毫无技术挑战,但是如果是300张照片呢?直接崩溃?还是让用户等待加载? 时间紧任务重,这一步需要拆分和优化。
scrollview框架需要了解下API,然后动动脑子了,这里有个小窍门,很多人都问我照片与照片间的黑边间距怎么实现,呵呵,贴下代码:
仔细想想,其实没有必要第一时间加载全部图片的高清原图,事先存好每张图配套的低分辨率图,用空间换时间。
先加载所有的图片的低分辨率图, 当用户翻阅到某一张图片时, 即时的加载原始尺寸的高清无码大图. 过程优化为:
多线程任务
即使是这样,当照片数量达到一定量时,需要消耗的时间也并非毫秒级,体验无法领人满意, 页面跳转时仍然会出现卡顿现象。
于是考虑使用多线程来进一步拆分任务, 执行跳转的同时再后台执行加载低分辨率图的步骤。
通过这样的拆分,可以实现立即跳转,体验满意。但是翻阅浏览时,如果用户很快左右滑动, 出现黑屏的几率很高。 因为加载低分辨率图任务的线程可能还在进行大量IO操作,不能及时跟上。 为了完善它,要把加载低分辨率图的步骤再次分解,精益求精。
在页面跳转时间允许的范围内,加载用户选定的那张图片的高清原图的同时,尽可能多的加载几张左右临近的图片的低分辨率图。
如何加载其余的低分辨率图?
以用户点击选定的那张图为中心向两边加载,,直接想应该是两个线程一左一右的加载,再想想左右一起加载其实可以是一个循环,免了再开线程的那些耗费了。
iOS开发:加载、滑动翻阅大量图片解决方案相关推荐
- iOS开发——加载、滑动翻阅大量图片解决方案详解
目录(?)[-] 常规思路流程 使用低分辨率图 多线程任务 优化快速翻阅体验 最后还一个砍儿 加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的 ...
- iOS开发——加载、滑动翻阅大量图片解决方案详解 .
加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏 ...
- iOS 加载、滑动翻阅大量图片解决方案详解
今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏浏览界面的这短暂的1秒内(和后续的几 ...
- 加载、滑动翻阅大量图片解决方案详解
加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏 ...
- iOS--加载、滑动翻阅大量图片解决方案详解
加载.滑动翻阅大量图片解决方案详解 今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制. 我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏 ...
- iOS开发之加载、滑动翻阅大量图片优化解决方案
今天分享一下私人相册中,读取加载.滑动翻阅大量图片解决方案,我想强调的是,编程思想无关乎平台限制.我要详细说一下,在缩略图界面点击任意小缩略图后,进入高清大图全屏浏览界面的这短暂的1秒内(和后续的几秒 ...
- python网站打开慢_Python selenium页面加载慢超时的解决方案
开发环境: win10-64 python2.7.16 chrome77 from selenium import webdriver driver = webdriver.Chrome(exec ...
- 【走过巨坑】android studio对于jni调用及运行闪退无法加载库的问题解决方案
[走过巨坑]android studio对于jni调用及运行闪退无法加载库的问题解决方案 参考文章: (1)[走过巨坑]android studio对于jni调用及运行闪退无法加载库的问题解决方案 ( ...
- 【Android 安全】DEX 加密 ( 代理 Application 开发 | 加载 dex 文件 | 将系统的 dexElements 与 应用的 dexElements 合并 | 替换操作 )
文章目录 一.将系统的 dexElements 与 应用的 dexElements 合并 二.Element[] dexElements 替换操作 三.完整 dex 加载源码 参考博客 : [Andr ...
最新文章
- 分享8个非常实用但是名气不大的软件
- Linux配置vsftpd 服务
- Nginx配置段(3)
- C3P0连接池的运用
- 【NLP】使用Transformer模型进行文本分类
- R语言空间数据处理(part1)--基础数据操作与处理
- php解决与处理网站高并发 大流量访问的方法
- mapreduce yarn内存参数
- mac m1 nvm 安装node版本失败
- 定义输入回溯法解决0-1背包问题
- xpwifi热点设置android,xp系统wifi热点设置的解决方案
- mysql count 1_MySQL中count(1)和count(*)的区别是什么?
- The following packages have unmet dependencies错误
- 资源分享|免费注册申请永久的eu.org顶级域名创建属于自己的域名,再也不用给博客域名续费了!...
- 【Android视频 之 阿里云视频播放器 二】
- python psutil下载安装_windows 利用pip 安装python psutil 模块
- linux日志切割命令,Linux 服务器log日志切割三种方法【附命令行】
- python 定义list长度_python中list列表的高级函数 python如何统计列表的长度
- 上班迟到,单位能按员工手册罚款吗?
- 废除金本位:银行家赋予罗斯福的历史使命
热门文章
- 杀手皇后 JoJo奇妙冒险 漫画人物3d模型
- linux系统日志怎么退出,linux系统日志的清除
- Linux 查看进程状态
- 3 为什么考研?该做那些准备 --绝密,程序员大厂面试求职大揭秘!
- 北航计算机学院博士开题,关于硕士生、博士生开题报告的通知及规定-北航电子信息工程学院...
- (附源码)计算机毕业设计SSM流浪动物管理系统
- 马薇薇论阴天期盼太阳
- NEIL: Extracting Visual Knowledge from Web Data 论文笔记
- C语言入门:立体几何计算题
- Arcgis Engine 实现单波段栅格图层色带渲染(包括色带反转)