一个简单的星座运势查询APP

先看效果图如下:这里写图片描述这里写图片描述这里写图片描述这里写图片描述
这是一个简单的星座运势查看的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”可添加小编微信哦!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25083.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运气指数测试软件,测一测最近的运势如何,有什么测试运势的软件

说到测一测最近的运势如何,大家都了解,有人问求测算运程,最近不太顺利,另外,还有人想问最近运势不太好,帮帮测里的大师能化解吗,这是怎么回事?其实有好家伙测试运势的软件吗&#xf…

chatgpt赋能python:Python排队:提高效率、优化流程的神器

Python排队:提高效率、优化流程的神器 随着科技的不断进步,排队已经成为了现代生活中不可避免的一部分。在各个行业中,排队都是必须考虑的问题,包括餐馆、医院、机场和银行等等。针对排队问题,我们可以使用Python编程…

与Bard竞争,OpenAI急了 官宣:ChatGPT用户无需排队,直接可用上联网和插件功能...

OpenAI和谷歌,已经打得急红了眼,ChatGPT Plus用户,下周就可以体验联网和插件功能,无需再排队。鲨疯了,真的鲨疯了!来自:新智元排版:深度学习自然语言处理 进NLP群—>加入NLP交流群…

2021ICPC澳门站部分题解

链接 A 构造一个生成函数就完了,正好有一个板子,贴一下完事。社会主义重拳出击,没想到区域赛会出这种题。澳门的前六个题是签到、模拟、最小异或生成树、分治ntt、构造、dag上sg函数。跪了。和大陆的区域赛真不一样,大陆属实小清…

澳门科技大学计算机研究生就业,澳门科技大学硕士申请难度(2021年)

原标题:澳门科技大学硕士申请难度(2021年) 澳门科技大学成立于2000年,隶属于澳门科技大学基金会,是澳门回归中国后成立的第一所私立大学,也是目前澳门特别行政区规模最大的大学。2009年美国《时代周刊》评选大中华区100名校&#…

澳门大学计算机qs排名,澳门大学世界QS排名

澳门大学世界QS排名 发表时间:2019-09-27 作者:211大学网 澳门大学(Universidade de Macau / University of Macau),简称澳大,是澳门一所现代大学,是澳门一所获AACSB认证的大学。 澳门大学前身为1981年3月28日成立的东…

大模型开发(四):OpenAI API调用方法

全文共8500余字,预计阅读时间约17~30分钟 | 满满干货(附代码示例),建议收藏! 代码下载点这里 一、获取OpenAI的API keys 前提:拥有OpenAI账户,并可以魔法上网 如果涉及账户或魔法上网问题,请看本文末尾的…

ChatGPT技术将给智能硬件带来更多新机会

近期,由人工智能实验室OpenAI发布的对话式大型语言模型ChatGPT在各大中外媒体平台掀起了一阵狂热之风。短短2个月时间,其用户量就达到一亿用户,注册用户之多导致服务器一度瘫痪。 ChatGPT到底是什么呢?ChatGPT是一种基于GPT-3&…

使用ChatGPT完成程序开发——目标:不写一行代码完成图像识别并点击

本文作为一个使用AI开发的思路,让更多的人可以利用AI完成一些简单的程序,文中使用的是国内镜像GTP3.5 源码: GitHub - kasimshi/testCV: AI编写的OpenCV图像识别例子 GTP镜像: 知汇 对AI描述我们要做的功能,让它给给初步的思路和方向 作为新…

如何在WhatsApp中更改聊天背景

By default, WhatsApp has a pretty weird and childish background for your chat messages. The good news is that you can change it. Here’s how. 默认情况下,WhatsApp的聊天消息背景非常古怪而幼稚。 好消息是您可以更改它。 这是如何做。 We’re using an …

如何抠图换背景?介绍两个抠图换背景的方法

如何抠图换背景?在我们的日常生活中,总是会需要使用到抠图技巧,现在已经进入冬天,有一些特殊情况以及天气寒冷,我们可能很少出门拍照。这个时候如果我们想要在朋友圈发一些新图的话,其实完全可以借助于抠图…

怎样改证件照的背景颜色?两种方法教你换背景色

怎么改证件照的背景色呢?证件照大家在日常中经常会使用到,这也是我们每个人必备的一种证件。但是在使用的过程中,相信很多小伙伴遇到过自己的证件照背景色与要求的颜色不符的情况,因为通常情况下不会有这种情况,所以我…

如何抠图换背景?教你几个抠图换背景的方法

如何抠图换背景?金秋十月,天气逐渐转凉,正是外出游玩的好时节。秋天很适合和银杏拍照,但是由于各种各样的因素,我们可能无法亲自去拍摄和银杏的照片,这个时候我们完全可以借助一些技术手段来帮助自己制作这…

怎么给照片换背景颜色?分享几种非常简单的操作方法

照片的背景颜色怎么更换呢?如果我们想要发布一张自拍照并想要突出自己的服装,可以更改背景颜色,使服装更加突出,更受关注。还有很多小伙伴的证件照背景颜色不符合要求,需要更换背景色,但是怎么才能做到呢&a…

照片怎么换背景底色?这几种换背景颜色方法很方便

照片的背景颜色怎么更换呢?更改照片的背景颜色可以制造出很多不同的效果。例如,将照片的背景颜色改为黑色或白色可以带来高度对比的效果,而将背景颜色改为柔和的粉色或淡蓝色则可以制造出柔和、浪漫的感觉。然而很多小伙伴不清楚怎么给照片换…

怎么给图片换背景?点开收货一些新方法

平时我们有些照片拍出来可能任务比较好看而背景拍的不是那么理想,那么对于这种照片如果删除重新拍一张会有些可惜,其实我们可以给照片中的人物抠图出来更换背景就可以解决啦,那么怎么给图片换背景呢?今天来给小伙伴们分享两个好方…

照片怎么换背景?这几个方法或许能帮到你

大学上就业指导课的时候,老师让我们制作一个自己的简历,并要求了头像需要是蓝底的一寸照。课后,在制作简历的过程中,我并没有被简历的内容给难住,而是被如何获得一个蓝底的证件照给拖了后腿。这时候,我的舍…

android应用更换背景图片方法

android应用更换背景图片方法: 这学期刚接触安卓,挺菜的,做一个同事通讯录的时候在换app背景图片的时候不知道咋弄了,到处找怎么换背景图片,后面摸索了一下弄出来了,分享一下步骤。 1、 在项目目录里找到dr…

Centos重置密码

操作系统版本:Centos 7.4 修改普通用户密码 [rootwjy ~]# passwd admin #后输入两次密码即可【此处用得是root用户修改得】修改root密码 [rootwjy ~]# passwd root #后输入两次密码即可 [rootwjy ~]# passwd #修改root密码也可以这样忘记root密码,需…

django-password-reset邮箱重置密码

看了网上不少关于django-password-reset的教程,但个人感觉不适合新手操作,所以本篇文章希望让跟多的人看懂。 官网地址:https://django-password-reset.readthedocs.io/en/latest/quickstart.html 官网的提示: 接下来我就把上…