本文参与趣米杯征文活动,如需转载请注明出处和作者 #趣米杯#码农天气--码农自己的天气APP(一) #趣米杯#码农天气--码农自己的天气APP(二) #趣米杯#码农天气--码农自己的天气APP(三) 之前我们已经实现了一个天气app的基本功能,这一篇文章我会介绍几个给app添彩的功能:通知栏,桌面widget,以及最近大家都很关心的PM2.5。 首先简单说一下通知栏的实现,这个功能做起来很简单,只要你把布局文件设计好,然后通过NotificationManager展示一下就可以了,取消的时候也是通过NotificationManager来取消,这一块应该没有什么难度,我把我反解的彩虹天气的通知栏布局文件贴出来,大家借鉴一下:
下面我们介绍一下桌面widget的实现,上面这个是彩虹天气的,下面的那个是码农天气的: ![]() 大家可以看到我做的这个比彩虹天气的少了一个农历日期的展示,其实这块是我偷懒了,我没有加上,大家如果有兴趣的话,可以自己尝试着加一下。 看完效果,我们看一下桌面Wigdet的原理,其实他就是一个广播接收者BroadcastReceiver,这是android的源码:
大家掌握这一点,对于桌面widget的理解就简单多了,他只需要接收指定的广播,就可以做一些预定义好的更新事件了。 彩虹天气有好几种widget的形式,我只是选了其中一种来实现的,大家有兴趣的话可以都试试。 这个是我的widget的布局文件,同样也是反解的彩虹天气的:
这一讲的最后,我们说一个大家都比较关心的知识点:PM2.5,这个功能彩虹天气以前是有的,不过最近一直都刷不出来数据,估计是他抓的数据源出问题了吧。 大家如果有PM2.5开发需求的,我给大家推荐一个比较好的数据源:PM25.in 大家开发的时候可以使用他提供的测试appKey: 公共测试AppKey:5j1znBVAsnSf5xQyNQyq这个网站的所有的appKey都是有访问次数限制的,所以这个公共的appKey经常获取不到数据,估计是很多人在用,我这里先把我申请的appKey贡献出来,大家都省着点用 ![]() 我申请的AppKey: YZGfRKfjgzJE78xFEjxg 我们可以到pm25.in的网站上看一下他提供的接口,每个接口需要上传的请求参数都很详细的列出来了,返回的数据都是Json格式的,这个对我们码农来说用起来就非常方便了,我用了我之前介绍的http://loopj.com/android-async-http/这个开源library项目来实现的这个功能:
这个pm25的接口有个问题:就是每个小时的访问次数次数都有限制,其实这也很好解决的,我们只需要在服务器上做个缓存,再开个定时任务去pm25.in取数据就好了。不过昨天在巴士的版主群里问了一下,发现很多人都没有做过服务端的东西,我怕我写了个服务端的东西大家都看不懂,所以我就把这个PM25的功能做成了本地版的了,不过这样做自己玩玩也还行。 这一篇征文就写到这,下一篇我会介绍一下彩虹天气的菜单功能。 |
#趣米杯#码农天气--码农自己的天气APP(四)
最新推荐文章于 2024-07-25 12:46:10 发布
本文参与趣米杯征文活动,如需转载请注明出处和作者 #趣米杯#码农天气--码农自己的天气APP(一) #趣米杯#码农天气--码农自己的天气APP(二) #趣米杯#码农天气--码农自己的天气APP(三) 之前我们已经实现了一个天气app的基本功能,这一篇文章我会介绍几个给app添彩的功能:通知栏,桌面widget,以及最近大家都很关心的PM2.5。 首先简单说一下通知栏的实现,这个功能做起来很简单,只要你把布局文件设计好,然后通过NotificationManager展示一下就可以了,取消的时候也是通过NotificationManager来取消,这一块应该没有什么难度,我把我反解的彩虹天气的通知栏布局文件贴出来,大家借鉴一下: 下面我们介绍一下桌面widget的实现,上面这个是彩虹天气的,下面的那个是码农天气的: ![]() 大家可以看到我做的这个比彩虹天气的少了一个农历日期的展示,其实这块是我偷懒了,我没有加上,大家如果有兴趣的话,可以自己尝试着加一下。 看完效果,我们看一下桌面Wigdet的原理,其实他就是一个广播接收者BroadcastReceiver,这是android的源码: 大家掌握这一点,对于桌面widget的理解就简单多了,他只需要接收指定的广播,就可以做一些预定义好的更新事件了。 彩虹天气有好几种widget的形式,我只是选了其中一种来实现的,大家有兴趣的话可以都试试。 这个是我的widget的布局文件,同样也是反解的彩虹天气的: 这一讲的最后,我们说一个大家都比较关心的知识点:PM2.5,这个功能彩虹天气以前是有的,不过最近一直都刷不出来数据,估计是他抓的数据源出问题了吧。 大家如果有PM2.5开发需求的,我给大家推荐一个比较好的数据源:PM25.in 大家开发的时候可以使用他提供的测试appKey: 公共测试AppKey:5j1znBVAsnSf5xQyNQyq这个网站的所有的appKey都是有访问次数限制的,所以这个公共的appKey经常获取不到数据,估计是很多人在用,我这里先把我申请的appKey贡献出来,大家都省着点用 ![]() 我申请的AppKey: YZGfRKfjgzJE78xFEjxg 我们可以到pm25.in的网站上看一下他提供的接口,每个接口需要上传的请求参数都很详细的列出来了,返回的数据都是Json格式的,这个对我们码农来说用起来就非常方便了,我用了我之前介绍的http://loopj.com/android-async-http/这个开源library项目来实现的这个功能: 这个pm25的接口有个问题:就是每个小时的访问次数次数都有限制,其实这也很好解决的,我们只需要在服务器上做个缓存,再开个定时任务去pm25.in取数据就好了。不过昨天在巴士的版主群里问了一下,发现很多人都没有做过服务端的东西,我怕我写了个服务端的东西大家都看不懂,所以我就把这个PM25的功能做成了本地版的了,不过这样做自己玩玩也还行。 这一篇征文就写到这,下一篇我会介绍一下彩虹天气的菜单功能。 |