每日必应图片数据的获取, 访问这个网址就可以获取到每日的json数据。 http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
可以比较清楚的看到,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