微软必应每天都会更新一张很美的图片作为网站的背景,拿来做启动页背景也是美美哒。
1.准备工作
网络请求:OKHttp
图片加载:Picasso
每日必应图片数据的获取,
访问这个网址就可以获取到每日的json数据。
{
"images": [
{
"startdate": "20170305",
"fullstartdate": "201703051600",
"enddate": "20170306",
"url": "/az/hprichbg/rb/SteepSheep_ZH-CN8716398488_1920x1080.jpg",
"urlbase": "/az/hprichbg/rb/SteepSheep_ZH-CN8716398488",
"copyright": "瓦莱黑鼻羊,瑞士瓦莱州 (© Alessandra Meniconzi/Solent News/REX/Shutterstock)",
"copyrightlink": "http://www.bing.com/search?q=%E9%BB%91%E9%BC%BB%E7%BE%8A&form=hpcapt&mkt=zh-cn",
"quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20170305_SteepSheep%22&FORM=HPQUIZ",
"wp": true,
"hsh": "c737af458c5e07aa3fc472220d828ec9",
"drk": 1,
"top": 1,
"bot": 1,
"hs": []
}
],
"tooltips": {
"loading": "正在加载...",
"previous": "上一个图像",
"next": "下一个图像",
"walle": "此图片不能下载用作壁纸。",
"walls": "下载今日美图。仅限用作桌面壁纸。"
}
}
可以比较清楚的看到,images标签下的url正式图片的请求的地址,利用JsonObject可以轻松提取到数据。可以看到图片分辨率为1920x1080的,满足了大部分的需求。
/**
* 解析json数据
* @param data
* @return
*/
private String resolveData(String data) {
String url = "";
try {
JSONArray jsonArray = new JSONObject(data).getJSONArray("images");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = (JSONObject) jsonArray.get(i);
if (jsonObject.has("url")) {
url = jsonObject.getString("url");
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return url;
}
2.示例工程
目录结构:
模仿使用MVP框架模式,这里不做介绍。
V层,新建StartActivity,实现IStartView接口。
P层,负责倒计时,逻辑控制
M层,请求数据,解析数据
几处关键的方法:
P层计时:
/**
* 倒计时
*
* @param time 隔几秒进入主界面
*/
private void countDown(int time) {
Timer timer = new Timer(true);
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
iStartModel.cancelRequest();
iStartView.goMainActivity();
}
};
//time秒之后执行取消请求数据操作,跳转到主界面
timer.schedule(timerTask, time);
}
@Override
public void getData() {
if (NetUtil.isConnected()) {
countDown(3500);
iStartModel.requsetData(new LocalImageCallback() {
@Override
public void success(String url) {
iStartView.showStartInfo(url);
}
@Override
public void fail(String msg) {
}
});
} else {
//当前无网络,可以提示用户打开设置,或者直接进入主界面。
countDown(1000);
}
}
对源码感兴趣的请访问: 点击打开链接
本文地址:http://blog.csdn.net/prodigalwang/article/details/60599754