先看效果图如下:
这是一个简单的星座运势查看的APP。
先来看欢迎界面,欢迎界面很简单,只要是一个简单的动画播放效果,然后对动画播放设置监听,当动画播放结束后自动跳转到主界面。欢迎界面主要代码如下:

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_welcome);iv=(ImageView) findViewById(R.id.iv);//透明动画alpha();}
private void alpha() {//得到透明动画对象,并初始化;fromAlpha:其始透明度,toAlpha:结束透明度AlphaAnimation aa=new AlphaAnimation(0.0f, 1.0f);//设置动画时间aa.setDuration(3000);//设置播放重复的次数aa.setRepeatCount(0);//设置播放的模式:RESTART:从新开始    REVERSE:反转aa.setRepeatMode(AlphaAnimation.RESTART);//开始执行动画;View中执行动画的方法iv.startAnimation(aa);//设置监听aa.setAnimationListener(new AnimationListener() {@Overridepublic void onAnimationStart(Animation animation) {}@Overridepublic void onAnimationRepeat(Animation animation) {}//动画播放结束后执行的函数@Overridepublic void onAnimationEnd(Animation animation) {Intent intent=new Intent();intent.setClass(WelcomeActivity.this, MainActivity.class);startActivity(intent);}});}

主界面只要是对输入框的输入的内容判断、返回键的设置、网络的判断。主要代码如下:
//对返回键进行监听,双击返回键时退出APP(注意的是要在欢迎页面对生命周期的onstop()方法内调用finish()方法才不会再返回欢迎界面)
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {exit();return false;}return super.onKeyDown(keyCode, event);
}
//退出方法
private void exit() {if ((System.currentTimeMillis() - mExitTime) > 2000) {Toast.makeText(MainActivity.this, "再按一次退出应用", Toast.LENGTH_SHORT).show();mExitTime = System.currentTimeMillis();} else {//用户退出处理finish();System.exit(0);}
}// 跳转到结果界面以及将输入宽的内容传递到parmas中
private void intent() {String ms = etmsg.getText().toString();if (ms == null || (ms.length()) == 0) {Toast.makeText(this, "请输入星座", Toast.LENGTH_SHORT).show();} else {if (ms.equals("水瓶座") || ms.equals("双鱼座") || ms.equals("白羊座")|| ms.equals("金牛座") || ms.equals("双子座") || ms.equals("巨蟹座")|| ms.equals("狮子座") || ms.equals("处女座") || ms.equals("天秤座")|| ms.equals("天蝎座") || ms.equals("射手座") || ms.equals("摩羯座")) {// 判断网络是否连接ConnectivityManager cwjManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = cwjManager.getActiveNetworkInfo();boolean netSataus = true;if (info != null) {netSataus = info.isAvailable();intent.putExtra("ms", ms);startActivity(intent);} else {Toast.makeText(this, "网络已经断开", Toast.LENGTH_LONG).show();}} else {Toast.makeText(this, "请输入正确的星座", Toast.LENGTH_SHORT).show();}}}
显示结果界面就是简单的将json数据进行解析并设置显示。注意的是要在线程中去获取json数据。主要代码:
@Override
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_result);// 初始化控件init();//得到json数据并将数据发送getResult();
}private void init() {tv_star = (TextView) findViewById(R.id.tv_star);tv_date = (TextView) findViewById(R.id.tv_date);tv_lucky = (TextView) findViewById(R.id.tv_lucky);tv_healthy = (TextView) findViewById(R.id.tv_healthy);tv_love = (TextView) findViewById(R.id.tv_love);tv_work = (TextView) findViewById(R.id.tv_work);tv_money = (TextView) findViewById(R.id.tv_money);tv_all = (TextView) findViewById(R.id.tv_all);tv_tips = (TextView) findViewById(R.id.tv_tips);
}
//解析json数据并将其显示
// 首先定义一个Handler对象
private Handler mhandle = new Handler() {// 处理消息的方法public void handleMessage(Message msg) {// 接收消息switch (msg.what) {case 1:// 处理消息String strmsg = (String) msg.obj;try {JSONObject person = new JSONObject(strmsg);String name = person.getString("name");String date = person.getString("date");String lucky=person.getString("color");String heathly=person.getString("health");String love=person.getString("love");String work=person.getString("work");String money=person.getString("money");String all=person.getString("all");String tips=person.getString("summary");Log.i("TAG", name);tv_star.setText(name);tv_date.setText(date);tv_lucky.setText(lucky);tv_healthy.setText(heathly);tv_love.setText(love);tv_work.setText(work);tv_money.setText(money);tv_all.setText(all);tv_tips.setText("友情提示:"+tips);} catch (JSONException e) {e.printStackTrace();}break;}};
};//通过首页传过来的星座以及日期去得到json数据并发送
private void getResult() {//新建一个线程主要是进行连网并获得json数据。new Thread(){}这里使用了匿名内部类的方法new Thread() {public void run() {Intent intent = getIntent();String result = null;String url = "http://web.juhe.cn:8080/constellation/getAll";// 请求接口地址Map params = new HashMap();// 请求参数params.put("key", APPKEY);// 应用APPKEY(应用详细页查询)//得带首页传过来的星座String etmsg_date = intent.getStringExtra("ms");params.put("consName", etmsg_date);// 星座名称,如:白羊座//得到首页要查询的日期String date = intent.getStringExtra("date");params.put("type", date);// 运势类型:today,tomorrow,week,nextweek,month,year//将url, params, "GET"传到HTTPUtil进行json数据的获取,得带json格式的数据result = HttpUtils.net(url, params, "GET");Log.i("TAG", result);Message msg = Message.obtain();// 消息标记(类似于邮票)msg.what = 1;// 发送消息msg.obj = result;mhandle.sendMessage(msg);}}.start();
}
这里只是简单的展示一下代码,还有很多细节要注意。需要源码和教程可直接扫码关注公众号。有任何问题可回复“1”可添加小编微信哦!

一个简单的星座运势查询APP相关推荐

  1. [Android 课设] 一款星座运势查询APP(前言)

    [Android 课设] 一款星座运势查询APP(前言) 前言 熬了几个夜,终于肝完了课设,今天答辩我是第四个,好家伙前面和后面全是大佬,就我一个简简单单连个登录注册都没有的不像APP的APP夹在中间 ...

  2. 利用python实现星座运势查询APP

    利用python实现星座运势查询APP 学习交流,老鸟指导,直播学习可以进我的python学习交流群 # *_* coding:utf8 *_* import jsonimport requests ...

  3. 星座运势查询微信小程序源码 周公自定义解梦源码

    源码介绍 这是一款以星座运势查询,周公自定义解梦为主的一款小程序 内支持流量主模式插入 多个功能包含如下: 星座查询 星座运势查询 十二生肖查询 生肖运势查询 星座配对 生肖配对 配对排行榜 星盘查询 ...

  4. python运势预测程序_星座运势查询示例代码

    #!/usr/bin/python # encoding:utf-8 import urllib2, json, urllib # 2.星座运势查询 data = {} data["appk ...

  5. 练手小项目(2)-生活小助手--星座运势查询

    上一篇内容 练手小项目(2)-生活小助手 今天星期一.趁着中午的歇息时间把 第二个写出来 星座运势,近期看看极客学院 用聚合数据做了天气预报的视频教程,不好评价他.看他在后面的代码变更那么大,我就知道 ...

  6. php 星座运势_星座运势查询示例代码

    require_once 'curl.func.php'; $appkey = 'your_appkey_here';//你的appkey $astroid = 1; $date='2016-01-1 ...

  7. java星座查询系统_星座运势查询示例代码

    package api.jisuapi.astro; import api.util.HttpUtil; import net.sf.json.JSONObject; public class For ...

  8. jQuery-链接api实现星座运势和手机号归属地查询

    连接api  做一个星座运势查询. <!DOCTYPE html> <html lang="en"> <head><meta charse ...

  9. 小程序源码:星座运势,周公解梦-多玩法安装简单

    这是一款以星座运势查询,周公自定义解梦为主的一款小程序 内支持流量主模式插入 多个功能包含如下: 星座查询 星座运势查询 十二生肖查询 生肖运势查询 星座配对 生肖配对 配对排行榜 星盘查询 周公解梦 ...

最新文章

  1. Balkan2007]Toponyms[链式前向星建字典树+getchar()读入优化]
  2. Date 和 SimpleDateFormat 类表示时间
  3. 一种JPG/PNG在线转EPS/PDF的方法
  4. shell日期处理函数
  5. 对Multi-bin 技术的理解
  6. 第三章 阴阳的工作机制(1)
  7. Moses manual 中Basline System 2.3.4节用IRSTLM创建语言模型的命令有误
  8. array用法 numpy_python--numpy(3)
  9. shiro认证授权过程
  10. JavaScript学习(五十九)—原型、原型链、闭包以及闭包的不足
  11. .Net QQ互联教程 1
  12. 承接一个外包开发项目后,开发流程以及如何做好。
  13. Android 学习笔记(十五):Activity-GalleryView
  14. C语言各个符号优先级(全)
  15. Linux 用户授权的方法,linux中用户和权限管理
  16. MacBook Pro键盘功能盘点
  17. windows驱动开发教程 滴水_滴水编程达人全套
  18. r720换固态硬盘后如何重装系统_换了固态硬盘后怎么重装系统?小白
  19. 第2章-系统控制原理 -> 经典控制理论
  20. ubuntu桌面便签_指标 – Stickynotes是您的Ubuntu桌面的粘滞便笺应用程序 | MOS86

热门文章

  1. PADS VX2.4在WIN10系统中菜单显示不全的解决方法
  2. 如何解决电子墨水屏标签的误唤醒和吵醒问题?
  3. C# 打开以对话框,获取文件夹路径 、文件的路径、文件名
  4. 【NYOJ 分类——语言入门】——汇总(四)
  5. 网络协议自动化逆向工具开山鼻祖discoverer 分析
  6. 有哪些工具、技巧和方法极大地提高了工作效率?
  7. unity之StartCoroutine运行机制--懵逼了
  8. android 带箭头的按钮,android自定义带箭头对话框
  9. Ubuntu官方推荐U盘写入工具
  10. OpenGL蓝宝书源码学习(五)第三章——Blending.cpp