Android之极致拟物化空气质量检测仪
来源:互联网 发布:期货从业软件 编辑:程序博客网 时间:2024/04/28 05:58
声明:转载此文请注明出处!源创意出自:https://play.google.com/store/apps/details?id=us.bestapp.pm25
本文源码:http://download.csdn.net/detail/weidi1989/5789763
(源码是基于eclipse工程打包,utf-8编码,如果遇到导入出错的童鞋,请自行找度娘或谷哥帮忙,谢谢合作!)
今天,跟大家分享一个重量级的小工具,可以说是极致拟物化。虽然功能很简单,但是效果很逼真,很酷!大家尽情的踩吧~
下面我们就来看看效果图:
1.显示北京市当前的AQI,可以通过NEXT键切换AQI与PM2.5值。
2.点击PRINT,就会有打印机一样的动画展现一份质量检测报告,同时有逼真的打印机声音,我们还可以点击分享按钮,分享给我们的朋友。
3.纸张可以通过滑动来撕掉此纸张,同时会有逼真的撕纸声音。(注意:Android3.0以下机器不支持撕纸动画)
4.长按PRINT,即可展示反馈界面,请填写您想说的话,然后通过软键盘的ENTER键确认,将会以邮件的形式反馈给我。
说明
提供实时查询全国 76 个城市(共 509 个监测点)的空气质量监测数据,为健康生活提供指引。支持分享到社交网络。
【操作提示】
* 按 NEXT :切换显示【AQI 指数】与【PM2.5 浓度值】
* 按 PRINT :打印具体空气质量详情
* 长按 NEXT :进入选择城市模式
* ……
* 更多操作方式,慢慢探索 :
忘记从什么时候开始,用颜色表示空气;
不知道什么时候可以,用甜度描述空气。
PM2.5 空气质量监测仪,就是这么简单,就是这么精致!
好了,下面重点跟大家讲讲源代码,其实功能很简单,就是拟物化的动画效果花了点小心思,这里,我引入了nineoldandroids-2.4.0.jar这个第三方库,因为在Android3.0以下的API中,有些动画是不支持的。
先看看源码结构图:
本例所有的动画都封装在一个类中,我们来看看:
OK,动画效果就总结到这里了,下面我们来分析一下自动定位的原理:目前看到大部分国内软件定位都是直接使用百度轻量级的包定位,包括我之前的那个简洁天气,也是如此,在这里,我使用的Google定位,换一种方式,换一个心情,多多熟练一下不同的方式。主要方法就是通过手机可用的PROVIDER,包括PASSIVE_PROVIDER、NETWORK_PROVIDER、GPS_PROVIDER三种方式,选择一个最优的方式定位,获取当前位置坐标点,然后通过HTTP请求,获取当前的城市名,例如:http://maps.googleapis.com/maps/api/geocode/json?latlng=22.5329294,114.019329&sensor=true,我们可以替换其中的latlng参数为手机获取的地理坐标,就可以获得城市名,虽然总体比百度jar包麻烦一点,但也算是最原始的一种方式了。通过网页访问这个网站,我们发现返回一大堆数据,这就需要我们解析了,这里我也贴出解析出城市的代码:
另外,其实我们还可以HTTP请求百度服务器,将地理坐标转换成城市,我这里就只提一下,解析原理也是类似的,都是json格式的返回数据:http://api.map.baidu.com/geocoder/v2/?ak=1919b4b56ae680106f8d1dfa5f7244d9&location=22.5329294,114.019329&output=json。
OK,本文大概的内容就是这样了,有需要的童鞋,可以下载源码参考参考,最后提醒一下,由于时间、人手问题,bug是在所难免的,目前已知bug:
1.频繁点击button,包括长按短按,会造成boolean标志位混乱。
2.撕纸张时,如果纸张角度较大且一直触屏,会造成纸张循环旋转。
3.偶尔会有动画卡顿的情况。
4.可能会有屏幕分辨率不适配的情况。
5.......
- Android之极致拟物化空气质量检测仪
- Android之极致拟物化空气质量检测仪
- Android-JSON数据解析之空气质量检测
- 空气质量在线检测系统制作 之Smart Airbox 制作流程
- DIY 空气质量检测表
- 空气质量检测仪制作及相关学习小结(一)
- 【Android】 天气预报与空气质量
- 空气质量
- 空气质量
- Spark Streaming通过Socket检测空气质量
- Spark Streaming 应用:空气质量流数据检测
- 【STM32小案例 05 】STM32使用MQ135检测环境空气质量
- Oracle之物化视图
- Oracle之物化视图
- Oracle之物化视图
- Oracle之物化视图
- Oracle之物化视图
- Oracle之物化视图
- 《数据结构和算法分析》具有O(logN)对数特点的三个基本算法
- 跨包访问
- javascript 封装函数
- C++实验3-项目1:个人所得税计算器
- 网址收藏--日语学习
- Android之极致拟物化空气质量检测仪
- 浙江工业大学校赛 小马哥和数列
- 省市级联和样式优化之极速微信小程序开发,第二天
- oracle 删除分区
- ES6 牛刀小试
- LeetCode刷题【Array】 Set Matrix Zeroes
- Problem I: 编程题A-实部与虚部的和
- 凸包:Graham's Scan
- 《C++实现数据结构》:二叉搜索树