一款基于Google Material Design设计开发的Android客户端,包括新闻简读,图片浏览,视频爽看 ,音乐轻听以及二维码扫描五个子模块。项目采取的是MVP架构开发,由于还是摸索阶段,可能不是很规范。但基本上应该是这么个套路,至少我个人认为是这样的~恩,就是这样的!

介绍:

一款基于Google Material Design设计开发的Android客户端,包括新闻简读,图片浏览,视频爽看 ,音乐轻听以及二维码扫描五个子模块。项目采取的是MVP架构开发,由于还是摸索阶段,可能不是很规范。但基本上应该是这么个套路

运行效果:

使用说明:

模块分析

新闻简读

  • 介绍:API使用的是凤凰新闻客户端的接口,我只是简单的获取了新闻的列表和详情数据,由于api和凤凰新闻客户端完全一致,鉴于侵权问题我就不开源出来了。至于接口是如何获取的?Google,百度,调试获取日志,我能说的只有这么多。
  • 功能:列表页使用自定义的ListView(自动加载更多)显示新闻列表,详情使用的是WebView加载,支持滑动返回。对于多图 新闻的处理,使用的和主流新闻客户端类似,滑动切换多张图片,可双指缩放图片大小!

图片浏览

  • 介绍:API使用的是百度图片的搜索接口,由于网上有很多的开发者开源了这个接口,所以我也就放出来,如有侵权请及时告知。
  • 功能:列表页使用的瀑布流效果(增加了下拉刷新和上拉加载更多)详情页和列表页的切换增加了一个图片放大或缩小到指定位置的效果,图片也可以双指缩放!

视频爽看

  • 介绍:API使用的是优酷开放平台的SDK,不过要吐槽的一点是,优酷的SDK真心不好用,还是Eclipse版本的,我是一点点移植到Android Studio平台的,但是它的接口还是很丰富的,好好的利用一下,还是能够做出一个优秀的APP的。
  • 功能:列表页使用了Google的CardView,简单的获取了一些视频的基本数据。播放页使用了优酷提供的视频播放器组件,传入视频ID就可以播放视频了,只要调通了SDK,其他的都是一些简单的数据获取!

音乐轻听

  • 介绍:API获取的是豆瓣音乐的数据,由于也不是开放API,如有侵权请及时告知。
  • 功能:播放音乐的界面是我自定义的一个唱机的View,很多思路都是从网上学习借鉴过来的,自己重新造了个轮子。UI和网易云音乐对比的话,只能说是形似神不似了,没有人家做的细致!

二维码扫描

  • 介绍:这个完全是我自己单独开发的类库,之前也有开源出来,这次又再一次重构优化,后期会单独剥离二维码扫描模块,做成类库和Demo的形式,提供Android Studio版本。
  • 功能:扫描界面使用xml进行布局,然后加入属性动画。这样布局更具有优势,更利于多屏幕适配。解码模块使用的是两个主流的开源库Zbar和ZXing,进过多次测试发现,ZBar虽然扫描效率和速度高于ZXing,但是经常扫描出错误的信息,可能由于太灵敏的缘故把,综合二者的优缺点还是建议使用ZXing来解码,并且这个项目还在长期维护更新!

致谢

  • 苦于没有后台支持,找到这些支持JSON数据格式的开放接口可谓是煞费苦心,前前后后尝试了很多次才找到,也感谢网友们提供的接口!
  • 界面的原型都是我自己构思的,后期的切图美化主要是Chris帮忙完成的,很感谢他业余时间和我一起完成这样一个APP!
  • 项目中大量使用了Github上面优秀的开源项目,我会列举出来!其他一些代码片段就不一一致谢了,很感谢这些开放源码的技术大牛们,让我学到了很多!
  • 最后如果觉得我的项目对你有所帮助,请点击我的支付宝付款码请我喝杯咖啡把~当然我也希望你们能够多多fork,多多star,多多follow,这将给我更多的动力开源更多的项目!

开源项目说明

ButterKnife

AndroidTagGroup

NineOldAndroids

SystemBarTint

Android-Universal-Image-Loader

PhotoView

OkHttp

SmartTabLayout

SwipeBackLayout

ImageBlurring

PinterestLikeAdapterView

Material-Dialogs

EventBus

Gson

Volley

Umeng

Youku

SimplifyReader项目(转载)的更多相关文章

  1. Mui本地打包笔记(一)使用AndroidStudio运行项目 转载 https://blog.csdn.net/baidu_32377671/article/details/79632411

    转载 https://blog.csdn.net/baidu_32377671/article/details/79632411 使用AndroidStudio运行HBuilder本地打包的Mui项目 ...

  2. Android开源项目-转载

    一.视频播放 https://github.com/lipangit/JieCaoVideoPlayer 二.图片选择 https://github.com/pengjianbo/GalleryFin ...

  3. 图文详解远程部署ASP.NET MVC 5项目 [转载]

    话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...

  4. IntelliJ IDEA新建JAVA WEB项目(转载)

    IntelliJ IDEA是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本控制工具(git.svn ...

  5. 普通项目如何转换成Maven项目 --转载自百度知道

    右键普通Java项目,在弹出的菜单中选择[Configure]-[Convert to Maven Project]: 2 在弹出的对话框中输入项目的groupId, artifactId和versi ...

  6. PYTHON --WebAPP项目转载(廖雪峰) -- Day 1 -- 搭建开发环境

    Day 1 - 搭建开发环境   搭建开发环境 首先,确认系统安装的Python版本是3.5.x: $ python3 --version Python 3.5.1 然后,用pip安装开发Web Ap ...

  7. GitHub 优秀的 Android 开源项目(转)

    今天查找资源时看到的一篇文章,总结了很多实用资源,十分感谢原作者分享. 转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介 ...

  8. GitHub 优秀的 Android 开源项目

    转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...

  9. 那些年不错的Android开源项目

    那些年不错的Android开源项目 转载自 eoe 那些年不错的Android开源项目-个性化控件篇 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.Acti ...

随机推荐

  1. Springboot整合二 集成 rabbitmq

    1.在application.yml文件中进行RabbitMQ的相关配置先上代码 spring: rabbitmq: host: 192168.21.11 port: username: guest ...

  2. Linksys WRT610n V2 刷ddwrt后安装entware-ng,使用opkg

    安装步骤很简单,首先启用usb.jffs.等. 然后: mkdir -p /jffs/opt mount -o bind /jffs/opt /opt wget -O - http://pkg.ent ...

  3. JVM类加载机制与反射-转

    一.Java类加载机制 1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允 ...

  4. JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题的解决方法

    1 var date = new Date('2016-11-11 11:11:11'); 2 document.write(date); 最近在写一个时间判断脚本,需要将固定好的字符串时间转换为时间 ...

  5. windows下JDK环境配置与Android SDK环境配置

    一.JDK环境配置1.配置变量名:JAVA_HOME变量值:jdk安装的绝对路径. 变量名:Path(在系统变量中找到并选中Path点击下面的编辑按钮,不要删除原本变量值中的任何一个字母,在这个变量值 ...

  6. hdoj:2084

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  7. Efficient Online Segmentation for Sparse 3D Laser Scans-- 在线的稀疏点云分割

    在基于激光的自动驾驶或者移动机器人的应用中,在移动场景中提取单个对象的能力是十分重要的.因为这样的系统需要在动态的感知环境中感知到周围发生变化或者移动的对象,在感知系统中,将图像或者点云数据预处理成单 ...

  8. MySql快速插入以及批量更新

    MySql快速插入以及批量更新 插入: MySql提供了可以一次插入多条数据的用法: [sql] INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6), ...

  9. VS F5不编译 F5总是重新编译

    遇到奇怪的现象,F5不编译了 右键解决方案-配置管理器-确保项目的生成被勾选 另外一个情况,即使不修改任何代码,每次点击“生成”或者F5,都会重新编译(Debug模式没问题,Release有这个问题, ...

  10. 【MySQL】随机获取数据的方法,支持大数据量

    在mysql中带了随机取数据的函数,在mysql中我们会有rand()函数,很多朋友都会直接使用,如果几百条数据肯定没事,如果几万或百万时你会发现,直接使用是错误的.下面我来介绍随机取数据一些优化方法 ...