Android开源天气信息查询软件小马天气源码下载

时间:2016-09-06 11:27 来源:互联网 作者:源码搜藏收藏

  • 源码类别:项目源码
  • 源码大小:未知
  • 编码格式:gbk,utf8,不限
  • 运行环境:php+mysql
  • 广告推荐

部分设计参考xcc3641的开源项目SeeWeather,在此表示感谢!
第一次开始这个项目是2014年4月份,我还在大二的时候,当时有一个程序设计实践课,想着简单点就选了天气预报这个题目,时隔两年又重新拾起,给它脱胎换骨,就是想拿他作为一个学习新知识的实战项目,期间也做过改动,比如曾经把网络请求模块从android-async-http改为Volley。

注意:隐私相关的key我没有提交,clone后需要自行申请和风天气bmob的key才能运行,其他key可直接忽略。

  • 开源不易,希望能给个Star鼓励
  • 项目地址:https://github.com/ChanWong21/PonyWeather
  • 有问题请提Issues

简介

小马天气是一款开源Android天气信息查询软件。

  • 实景天气,寻找你身边的美景
  • 多城市天气预报,记得提醒远方的TA
  • 语音播报,一键听天气
  • Material Design 设计风格,从未如此简约
  • 自动夜间模式,更加贴心

更新说明

v 2.1

  • 新增搜索城市
  • 新增设置自动更新时间间隔

v 2.0

  • 新增实景天气
  • 新增城市管理
  • 新增语音播报
  • 支持自动夜间模式

v 1.5

  • 重构代码,全新风格设计
  • 增加支持国内全部县级以上城市可选

v 1.4

  • 支持Android 6.0

下载地址

fir.im:http://fir.im/ponyweather
应用宝:http://android.myapp.com/myapp/detail.htm?apkName=me.wcy.weather

TODO

  • 实景天气
  • 城市管理
  • 语音播报
  • 自动夜间模式
  • 桌面小部件

项目

公开API

  • 天气数据:和风天气
  • 定位服务:高德定位
  • 语音合成:百度语音
  • 云存储:Bmob后端云

开源技术

  • Rxjava
  • Retrofit
  • ASimpleCache
  • Android-Universal-Image-Loader
  • android-floating-action-button

关键代码

网络请求RxJava+Retrofit

private void fetchDataFromNetWork(final CityEntity city) {
    Api.getIApi().getWeather(city.name, ApiKey.HE_KEY)
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .filter(new Func1<WeatherData, Boolean>() {
                @Override
                public Boolean call(final WeatherData weatherData) {
                    boolean success = weatherData.weathers.get(0).status.equals("ok");
                    return success;
                }
            })
            .map(new Func1<WeatherData, Weather>() {
                @Override
                public Weather call(WeatherData weatherData) {
                    return weatherData.weathers.get(0);
                }
            })
            .doOnNext(new Action1<Weather>() {
                @Override
                public void call(Weather weather) {
                    mACache.put(city.name, weather);
                    SystemUtils.saveRefreshTime(WeatherActivity.this);
                }
            })
            .subscribe(new Subscriber<Weather>() {
                ...
                updateView(weather);
                ...
            });
}

截图

   

本站资源仅限于学习研究,严禁从事商业或者非法活动! 源码搜藏网所有源码来自互联网转载与用户上传分享,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

项目源码下载排行

最新文章