在公司开发项目中需要弹出展示从网络上下载的图片,并提供滑动展示功能。目前采用同事开发的图片浏览器,后期有时间想优化一下。所以重温了下以前开发的类似微博的项目中的图片浏览器代码,并抽取出来封装成了现在这个框架。

目前功能还比较简陋,有时间慢慢优化。扩展本地和网络图片以及其他支持吧。

Github下载地址:https://github.com/jakciehoo/HooPhotoBrowser

实现功能

  1.设置图片地址数组,从地址获取当前选择图片,然后展示当前图片(可设置默认显示第几张图片)

  2.提供图片下载进度动画,下载成功显示下载图片,下载过程中给出进度提示动画,下载失败提供下载失败提示。

  3.工具栏展示图片信息,并提供保存到本地相册功能

  4.对代码做了内存优化。

效果图展示

添加到项目

  1.项目依赖SDWebImage,因此需要你的项目添加SDWebImage框架,下载地址:https://github.com/rs/SDWebImage

  2.将Demo中的HooPhotoBrowser拷贝到项目中。

调用方法

HooPhotoBrowser的调用方法,可以参考demo。这里我先把调用代码写出来。

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIImageView *imageView = [[UIImageView alloc] init];
imageView.frame = CGRectMake(, , , );
imageView.image = [UIImage imageNamed:@"uc_header_background.jpg"];
[self.view addSubview:imageView];
imageView.userInteractionEnabled = YES;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapToShow:)];
tap.numberOfTapsRequired = ;
[imageView addGestureRecognizer:tap]; } - (void)tapToShow :(UITapGestureRecognizer *)tap {
UIImageView *tapView = (UIImageView *)tap.view;
NSArray *images = @[@"http://images.asiatravel.com/Hotel/8016/8016facade.jpg",
@"http://images.asiatravel.com/Hotel/8016/8016logo.jpg",
@"http://images.asiatravel.com/Hotel/8016/8016bathroom.jpg",
@"http://images.asiatravel.com/Hotel/8016/8016standard_room.jpg",
@"http://images.asiatravel.com/Hotel/8016/8016lobby-cafe.jpg",
@"http://images.asiatravel.com/Hotel/8016/8016lobby-reception.jpg",
@"http://images.asiatravel.com/Hotel/8016/8016pool.jpg"];
NSInteger i = ;
NSMutableArray *pArray = [NSMutableArray array];
for (NSString *url in images) {
HooPhoto *photo = [[HooPhoto alloc] init];
photo.url = [NSURL URLWithString:url];
photo.index = i;
photo.sourceImageView = tapView;
[pArray addObject:photo];
i++;
}
HooPhotoBrowser *photoBrowser = [[HooPhotoBrowser alloc] init];
photoBrowser.currentPhotoIndex = ;
photoBrowser.photos = pArray;
[photoBrowser show];
}

最后欢迎大家参考学习。并欢迎大家关注我的微信公众号,互相学习。

我的微信公众号:丁丁的coding日记

开源一个网络图片浏览器HooPhotoBrowser的更多相关文章

  1. Android(java)学习笔记201:网络图片浏览器的实现(ANR)

    1.我们在Android下,实现使用http协议进行网络通信,请求网络数据.这里是获取网络上的图片信息,让它可以显示在手机上: 但是我们这个手机连接网络是很费时间,如果我们在主线程(UI线程)中写这个 ...

  2. Android(java)学习笔记144:网络图片浏览器的实现(ANR)

    1.我们在Android下,实现使用http协议进行网络通信,请求网络数据.这里是获取网络上的图片信息,让它可以显示在手机上: 但是我们这个手机连接网络是很费时间,如果我们在主线程(UI线程)中写这个 ...

  3. 如何创建一个Edge 浏览器扩展

    随着微软Windows 10 年度更新的发布,数次延宕的Edge 扩展功能终于得到了官方正式支持.我在我的另外一个博客上发布了如何创建一个Edge 浏览器扩展的博文,链接如下: https://blo ...

  4. 开源一个Java Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了

    开源一个Java Class实现Openfire登陆.推出.消息发送 N年前写的,希望对Openfire开发新手有帮助哦 import java.util.*; import java.io.*;   ...

  5. 调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)

    调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)

  6. Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console、file等。Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别。

    Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console.file等.Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别. ...

  7. Microsoft SilverLightt是一个跨浏览器的、跨平台的插件,为网络带来下一代基于.NETFramework的媒体体验和丰富的交互式应用程序。

    Microsoft Silverlight是一个跨浏览器的.跨平台的插件,为网络带来下一代基于.NETFramework的媒体体验和丰富的交互式应用程序.Silverlight提供灵活的编程模型,并可 ...

  8. 开源一个Mac漂亮的小工具 PPRows for Mac, 在Mac上优雅的计算你写了多少行代码

    开源一个Mac漂亮的小工具 PPRows for Mac, 在Mac上优雅的计算你写了多少行代码. 开源地址: https://github.com/jkpang/PPRows

  9. 一款开源免费跨浏览器的视频播放器--videojs使用介绍

    最近项目中的视频功能,需要做到浏览器全兼容,所以之前用html5实现的视频功能就需要进行改造了.在网上翻了个遍,试来试去,在所有的视频播放器中,就数它最实际了.首先我们来看看它的优点: 1.它是开源免 ...

随机推荐

  1. 为什么说invalidate()不能直接在线程中调用

      1.为什么说invalidate()不能直接在线程中调用?2.它是怎么违背单线程的?3.Android ui为什么说不是线程安全的?4.android ui操作为什么一定要在UI线程中执行? 1. ...

  2. Web后台开发技术 经验路线图

    一篇文章:http://www.cnblogs.com/Hiker/archive/2012/11/04/houtaijishu.html

  3. python画图

    正弦图像: #coding:utf-8import numpy as npimport matplotlib.pyplot as pltx=np.linspace(0,10,1000)y=np.sin ...

  4. java, mybatis, 调用mysql存储过程

    Map<String, Object> bindinfo = new HashMap<String, Object>();            bindinfo.put(&q ...

  5. Hadoop基础学习框架

    我们主要使用Hadoop的2个部分:分布式文件存储系统(HDFS)和MapReduce计算模型. 关于这2个部分,可以参考一下Google的论文:The Google File System 和 Ma ...

  6. webbench---linux压测工具

    webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好用,安装使用也特别方便,并且非常小. 1.适用系统:Linux-CentOs 2.编译安 ...

  7. 【Duke-Image】Week_5 Segmentation

    Chapter 10 Image Segmentation 图像分割 10.2.7 Edge Linking and Boundary Detection 边缘连接和边界检测 Global proce ...

  8. Create and Install Timer Job in MOSS 2007

    Excute Timerjob public class TriggerLoadCacheTimerJob : SPJobDefinition { string ExceptionFlag = str ...

  9. Java8之——简洁优雅的Lambda表达式

    Java8发布之后,Lambda表达式,Stream等等之类的字眼边慢慢出现在我们字眼.就像是Java7出现了之后,大家看到了“钻石语法”,看到了try-with-resource等等.面对这些新东西 ...

  10. mydumper linux mysql 备份利器

    1 官网 https://launchpad.net/ 2 安装使用参考网站   http://www.cnblogs.com/digdeep/p/4925560.html