开源一个网络图片浏览器HooPhotoBrowser
在公司开发项目中需要弹出展示从网络上下载的图片,并提供滑动展示功能。目前采用同事开发的图片浏览器,后期有时间想优化一下。所以重温了下以前开发的类似微博的项目中的图片浏览器代码,并抽取出来封装成了现在这个框架。
目前功能还比较简陋,有时间慢慢优化。扩展本地和网络图片以及其他支持吧。
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的更多相关文章
- Android(java)学习笔记201:网络图片浏览器的实现(ANR)
1.我们在Android下,实现使用http协议进行网络通信,请求网络数据.这里是获取网络上的图片信息,让它可以显示在手机上: 但是我们这个手机连接网络是很费时间,如果我们在主线程(UI线程)中写这个 ...
- Android(java)学习笔记144:网络图片浏览器的实现(ANR)
1.我们在Android下,实现使用http协议进行网络通信,请求网络数据.这里是获取网络上的图片信息,让它可以显示在手机上: 但是我们这个手机连接网络是很费时间,如果我们在主线程(UI线程)中写这个 ...
- 如何创建一个Edge 浏览器扩展
随着微软Windows 10 年度更新的发布,数次延宕的Edge 扩展功能终于得到了官方正式支持.我在我的另外一个博客上发布了如何创建一个Edge 浏览器扩展的博文,链接如下: https://blo ...
- 开源一个Java Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
开源一个Java Class实现Openfire登陆.推出.消息发送 N年前写的,希望对Openfire开发新手有帮助哦 import java.util.*; import java.io.*; ...
- 调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)
调用init方法 两种方式 一个是浏览器方法 一个是 xml中手工配置(load-on-startup)
- Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console、file等。Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别。
Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console.file等.Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别. ...
- Microsoft SilverLightt是一个跨浏览器的、跨平台的插件,为网络带来下一代基于.NETFramework的媒体体验和丰富的交互式应用程序。
Microsoft Silverlight是一个跨浏览器的.跨平台的插件,为网络带来下一代基于.NETFramework的媒体体验和丰富的交互式应用程序.Silverlight提供灵活的编程模型,并可 ...
- 开源一个Mac漂亮的小工具 PPRows for Mac, 在Mac上优雅的计算你写了多少行代码
开源一个Mac漂亮的小工具 PPRows for Mac, 在Mac上优雅的计算你写了多少行代码. 开源地址: https://github.com/jkpang/PPRows
- 一款开源免费跨浏览器的视频播放器--videojs使用介绍
最近项目中的视频功能,需要做到浏览器全兼容,所以之前用html5实现的视频功能就需要进行改造了.在网上翻了个遍,试来试去,在所有的视频播放器中,就数它最实际了.首先我们来看看它的优点: 1.它是开源免 ...
随机推荐
- 为什么说invalidate()不能直接在线程中调用
1.为什么说invalidate()不能直接在线程中调用?2.它是怎么违背单线程的?3.Android ui为什么说不是线程安全的?4.android ui操作为什么一定要在UI线程中执行? 1. ...
- Web后台开发技术 经验路线图
一篇文章:http://www.cnblogs.com/Hiker/archive/2012/11/04/houtaijishu.html
- python画图
正弦图像: #coding:utf-8import numpy as npimport matplotlib.pyplot as pltx=np.linspace(0,10,1000)y=np.sin ...
- java, mybatis, 调用mysql存储过程
Map<String, Object> bindinfo = new HashMap<String, Object>(); bindinfo.put(&q ...
- Hadoop基础学习框架
我们主要使用Hadoop的2个部分:分布式文件存储系统(HDFS)和MapReduce计算模型. 关于这2个部分,可以参考一下Google的论文:The Google File System 和 Ma ...
- webbench---linux压测工具
webbench最多可以模拟3万个并发连接去测试网站的负载能力,个人感觉要比Apache自带的ab压力测试工具好用,安装使用也特别方便,并且非常小. 1.适用系统:Linux-CentOs 2.编译安 ...
- 【Duke-Image】Week_5 Segmentation
Chapter 10 Image Segmentation 图像分割 10.2.7 Edge Linking and Boundary Detection 边缘连接和边界检测 Global proce ...
- Create and Install Timer Job in MOSS 2007
Excute Timerjob public class TriggerLoadCacheTimerJob : SPJobDefinition { string ExceptionFlag = str ...
- Java8之——简洁优雅的Lambda表达式
Java8发布之后,Lambda表达式,Stream等等之类的字眼边慢慢出现在我们字眼.就像是Java7出现了之后,大家看到了“钻石语法”,看到了try-with-resource等等.面对这些新东西 ...
- mydumper linux mysql 备份利器
1 官网 https://launchpad.net/ 2 安装使用参考网站 http://www.cnblogs.com/digdeep/p/4925560.html