Android新浪星座运势程序开发
有的时候无聊会到新浪网看新浪星座运势,准备自己也写个Android客户端的。首先打算很简单,只显示当天的星座运势。后面在可以在加上周,月,年等。
开发的样式大概是这样的,上半部分的左右两边有两个button可以用来切换星座,当然也可以通过触屏左右滑动。两个button之间显示星座的一些信息,如:星座名字,星座所处的日期范围,运势有效的时间,健康指数,商谈指数,幸运颜色,速配星座。下半部分显示星座运势的详细解释。
上一张自己做好的效果图:
此应用程序很简单,主要是根据星座运势的url获取网页的内容,分析返回的源代码,截取需要的字符串。应用程序所显示的所有文字均来自新浪运势。下面是获取文字的主要代码:
![astroluck](http://shanbei.info/wp-content/uploads/2011/10/astroluck.jpg)
try {
HttpClient hc = new DefaultHttpClient();
HttpGet hg = new HttpGet(url);
HttpResponse hr = hc.execute(hg);
if (hr.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
String strResult = EntityUtils.toString(hr.getEntity());
String str1="星座:";
String str2="";
for (int i = 0; i < strResult.length(); i++) {
if (strResult.charAt(i) == '<' && strResult.substring(i, i + 6).equals("<span>")) {
str1 = str1 + strResult.substring(i + 6, i + 9) + "\n星座日期:" + strResult.substring(i + 13, getEnd(strResult, i+13));
}
if (strResult.charAt(i) == '有' && strResult.substring(i, i + 4).equals("有效日期")) {
str1 = str1 + "\n有效日期:" + strResult.substring(i+5, getEnd(strResult, i+6));
}
if(strResult.charAt(i)=='健' && strResult.substring(i, i + 4).equals("健康指数")) {
str1 = str1 + "\n健康指数:" + strResult.substring(i+12, getEnd(strResult, i+12));
}
if(strResult.charAt(i)=='商' && strResult.substring(i, i + 4).equals("商谈指数")) {
str1 = str1 + "\n商谈指数:" + strResult.substring(i+12, getEnd(strResult, i+12));
}
if(strResult.charAt(i)=='幸' && strResult.substring(i, i + 4).equals("幸运颜色")) {
str1 = str1 + "\n幸运颜色:" + strResult.substring(i+12, getEnd(strResult, i+12));
}
if(strResult.charAt(i)=='速' && strResult.substring(i, i + 4).equals("速配星座")) {
str1 = str1 + "\n速配星座:" + strResult.substring(i+12, getEnd(strResult, i+12));
}
if(strResult.charAt(i)=='l' && strResult.substring(i, i + 8).equals("lotconts")) {
int end = i+10;
while (strResult.charAt(end) != '<') {
end++;
}
str2 = str2 + strResult.substring(i+10, end);
break;
}
}
viewLuck.setText(str1);
viewContent.setText(str2);
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}