Android项目(完整版+免费版)

article/2025/10/6 0:56:50

Android项目–关于星座相关的app

第一部分–界面效果图

  • 页面一:(点击页面任意一个星座图标会显示相应的数据)
  • 页面二:(可以更换男生或女生的星座,点击开始配对分析,能跳转相应的页面,并显示相应的数据分析)
  • 页面三:(点击任意一个图标,跳转到相应的页面,展示这一年的运势数据)
  • 页面四:(点击头像,能更换相应的星座,下一次登录,仍然会保存)

第二部分–图片素材

以下是百度网盘的链接:
链接:https://pan.baidu.com/s/1vbtOJNS-I2Lm1JXXxumZSg
提取码:1111

第三部分–部分代码

- XingZuoWeb(我的项目名称)—>app—>src—>main–>java–>com.example.xingzuoweb(自己创建的包名)–>MainActivity

package com.example.xingzuoweb;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
import android.widget.RadioGroup;
import com.example.xingzuoweb.bean.StarBean;
import com.example.xingzuoweb.luckfrag.LuckFragment;
import com.example.xingzuoweb.mefrag.MeFragment;
import com.example.xingzuoweb.parnterfrag.PartnerFragment;
import com.example.xingzuoweb.starfrag.StarFragment;
import com.example.xingzuoweb.utils.AssetsUtils;
import com.google.gson.Gson;
public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener{RadioGroup mainRg;//声明四个按钮对应的Fragment对象Fragment starFrag,luckFrag,partnerFrag,meFrag;private FragmentManager manager;private FragmentTransaction fragmentTransaction;private FragmentTransaction transaction;private FragmentTransaction fragmentTransaction1;private Object FragmentTransaction;private String jsonFromAssets;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mainRg = findViewById(R.id.main_rg);//设置监听器点击了哪个单选按钮mainRg.setOnCheckedChangeListener(this);//加载星座的数据StarBean infoBean = loadData();Bundle bundle = new Bundle();bundle.putSerializable("info",infoBean);//创建碎片对象starFrag = new StarFragment();starFrag.setArguments(bundle);luckFrag = new LuckFragment();luckFrag.setArguments(bundle);partnerFrag = new PartnerFragment();partnerFrag.setArguments(bundle);meFrag = new MeFragment();meFrag.setArguments(bundle);//将四个Fragment进行动态加载,一起加载到布局当中。addFragmentPage();}//读取assets下的文件private StarBean loadData() {String json = AssetsUtils.getJsonFromAssets(this, "xzcontent/xzcontent.json");Gson gson = new Gson();StarBean infoBean = gson.fromJson(json, StarBean.class);AssetsUtils.saveBitmapFromAssets(this,infoBean);return infoBean;}//将主页当中的碎片一起加载进入布局,有用的显示,暂时无用的隐藏。private void addFragmentPage() {//1.创建碎片管理者对象manager = getSupportFragmentManager();//2.创建碎片处理事务的对象FragmentTransaction transaction = manager.beginTransaction();//3.将四个Fragment统一的添加到布局当中transaction.add(R.id.main_layout_center,starFrag);transaction.add(R.id.main_layout_center,partnerFrag);transaction.add(R.id.main_layout_center,luckFrag);transaction.add(R.id.main_layout_center,meFrag);//4.隐藏后面的三个transaction.hide(partnerFrag);transaction.hide(luckFrag);transaction.hide(meFrag);//5.提交碎片改变后的事务transaction.commit();}@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {FragmentTransaction transaction  = manager.beginTransaction();switch (checkedId){case R.id.main_rb_star:transaction.hide(partnerFrag);transaction.hide(luckFrag);transaction.hide(meFrag);transaction.show(starFrag);break;case R.id.main_rb_parnter:transaction.hide(starFrag);transaction.hide(luckFrag);transaction.hide(meFrag);transaction.show(partnerFrag);break;case R.id.main_rb_luck:transaction.hide(starFrag);transaction.hide(partnerFrag);transaction.hide(meFrag);transaction.show(luckFrag);break;case R.id.main_rb_me:transaction.hide(starFrag);transaction.hide(luckFrag);transaction.hide(partnerFrag);transaction.show(meFrag);break;}transaction.commit();}
}
  • com.example.xingzuoweb —> bean(自己创建的包)—> StarBean
package com.example.xingzuoweb.bean;import java.io.Serializable;
import java.util.List;public class StarBean implements Serializable {private List<StarinfoBean> starinfo;public List<StarinfoBean> getStarinfo() {return starinfo;}public void setStarinfo(List<StarinfoBean> starinfo) {this.starinfo = starinfo;}public static class StarinfoBean implements  Serializable{/*** logoname : baiyang* name : 白羊座* date : 3月21日-4月19日* td : 热情活力* gw : 第一宫* yy : 阳性* tz : 控制* zg : 火星* ys : 红色* zb : 红宝石* hm : 5* js : 铁* info : 白羊座有一种让人看见就觉得开心的感觉,因为总是看起来都是那么地热情、阳光、乐观、坚强,对朋友也慷概大方,性格直来直往,就是有点小脾气。白羊男有大男人主义的性格,而白羊女就是女汉子的形象。*/private String logoname;private String name;private String date;private String td;private String gw;private String yy;private String tz;private String zg;private String ys;private String zb;private String hm;private String js;private String info;public String getLogoname() {return logoname;}public void setLogoname(String logoname) {this.logoname = logoname;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDate() {return date;}public void setDate(String date) {this.date = date;}public String getTd() {return td;}public void setTd(String td) {this.td = td;}public String getGw() {return gw;}public void setGw(String gw) {this.gw = gw;}public String getYy() {return yy;}public void setYy(String yy) {this.yy = yy;}public String getTz() {return tz;}public void setTz(String tz) {this.tz = tz;}public String getZg() {return zg;}public void setZg(String zg) {this.zg = zg;}public String getYs() {return ys;}public void setYs(String ys) {this.ys = ys;}public String getZb() {return zb;}public void setZb(String zb) {this.zb = zb;}public String getHm() {return hm;}public void setHm(String hm) {this.hm = hm;}public String getJs() {return js;}public void setJs(String js) {this.js = js;}public String getInfo() {return info;}public void setInfo(String info) {this.info = info;}}
}
  • com.example.xingzuoweb —> home --> GuideActivity
package com.example.xingzuoweb.home;import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;import com.example.xingzuoweb.MainActivity;
import com.example.xingzuoweb.R;import java.util.ArrayList;
import java.util.List;public class GuideActivity extends AppCompatActivity {ViewPager guideVp;List<ImageView>mDatas;//存放三张图片的地址int resIds[] = {R.mipmap.loading1,R.mipmap.loading2,R.mipmap.loading3};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_guide);guideVp = findViewById(R.id.guide_vp);mDatas = new ArrayList<>();initPager();//为第三个图片设置监听事件setListener();}private void setListener() {int size = mDatas.size();ImageView view = mDatas.get(size-1);view.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(GuideActivity.this, MainActivity.class);startActivity(intent);finish();}});}private void initPager() {for (int i= 0;i<resIds.length;i++){ImageView imageView = new ImageView(this);imageView.setImageResource(resIds[i]);imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);imageView.setLayoutParams(lp);mDatas.add(imageView);}GuideAdapter adapter = new GuideAdapter(mDatas);//设置适配器guideVp.setAdapter(adapter);}
}
  • com.example.xingzuoweb —> home --> GuideAdapter
package com.example.xingzuoweb.home;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;import java.util.List;public class GuideAdapter extends PagerAdapter {List<ImageView>mDatas;public GuideAdapter(List<ImageView> mDatas) {this.mDatas = mDatas;}@Overridepublic int getCount() {return mDatas.size();}@Overridepublic boolean isViewFromObject(@NonNull View view, @NonNull Object object) {return view==object;}@NonNull@Overridepublic Object instantiateItem(@NonNull ViewGroup container, int position) {ImageView imageView = mDatas.get(position);container.addView(imageView);return imageView;}@Overridepublic void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {ImageView imageView = mDatas.get(position);container.removeView(imageView);}
}

- com.example.xingzuoweb —> home —>WelcomeActivity

package com.example.xingzuoweb.home;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;import com.example.xingzuoweb.MainActivity;
import com.example.xingzuoweb.R;
public class WelcomeActivity extends AppCompatActivity {TextView tv;int count = 3;Handler handler = new Handler(){@Overridepublic void handleMessage(@NonNull Message msg) {if (msg.what==1){count--;if (count==0){//判断是否是第一次进入应用,如果是第一次进入此应用,跳转到引导页面boolean isFirst = pref.getBoolean("isFirst",true);Intent intent = new Intent();if (isFirst){intent.setClass(WelcomeActivity.this,GuideActivity.class);SharedPreferences.Editor editor = pref.edit();editor.putBoolean("isFirst",false);editor.commit();}else {intent.setClass(WelcomeActivity.this,MainActivity.class);}startActivity(intent);finish();}else {tv.setText(String.valueOf(count));handler.sendEmptyMessageDelayed(1,500);}}}};private SharedPreferences pref;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_welcome);tv = findViewById(R.id.welcome_tv);pref = getSharedPreferences("first_pref", MODE_PRIVATE);handler.sendEmptyMessageDelayed(1,500);}
}

第四部分–打包后的apk

以下是百度网盘的链接:
点击链接即可下载:https://pan.baidu.com/s/1u0iUk5glF11BRy-bYHub6g
提取码:1111

小伙伴们~ 由于代码量很大,需要完整的代码可以点击链接:XingZuoWeb.zip 进行下载哦~

留言:如果对你有帮助,给博主点个免费的赞吧 ~ 创作不易,感谢支持!
在这里插入图片描述


http://chatgpt.dhexx.cn/article/guVI3Ilm.shtml

相关文章

某程序员面试支付宝P7,面试已通过,却因为背调没过!再进阿里失败!阿里背调,到底调啥?...

热文推荐&#xff1a; 尘埃落定&#xff01;清华才子王垠加入华为职级22&#xff0c;前阿里P10赵海平加入字节跳动&#xff0c;职级或为4百度网盘“破解版”&#xff0c;Pandownload开发者被抓我去&#xff01;微信竟然可以查出行轨迹了&#xff0c;预计又一波情侣要分手&#…

清华人工智能研究院成立,张钹姚期智分别任院长和主任

&#xfeff;&#xfeff; 清华大学人工智能研究院成立了&#xff01; 今日&#xff0c;清华大学人工智能研究院成立仪式暨清华-谷歌 AI 学术研讨会在清华举行。据介绍&#xff0c;张钹院士将担任院长&#xff0c;图灵奖得主姚期智院士任学术委员会主任&#xff0c;同时&#x…

王垠的面试 和 P 与 NP

最近&#xff0c;国内 IT 界有一个大瓜。 大意是&#xff0c;首先&#xff0c;IT 界的网红王垠受邀&#xff0c;面试阿里的 P9 岗位&#xff0c;面试官是 P10 级别的赵海平。面试结束以后&#xff0c;王垠发文表示自己遭受了不公待遇。 结果&#xff0c;坊间传闻&#xff1a;阿…

传言阿里P10赵海平被P11多隆判定3.25离职,如何评价阿里 P10 赵海平对王垠的面试?...

大家好&#xff0c;我是老表 阅读文本大概需要 10 分钟 来源&#xff1a;知乎 地址&#xff1a;https://www.zhihu.com/question/360622233 阿里P10也被325辞退&#xff1f; 最近几天的阿里圈也真的是很热闹。一个礼拜过去了&#xff0c;“最伟大的计算机科学家”赵海平一直沉默…

王垠受邀面试阿里P9,被P10面跪后网上怒发文,惨打325的P10赵海平回应了!

点击上方“码农突围”&#xff0c;马上关注 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 整理自综合自知乎&互联网坊间八卦 观点不代表本号立场 开发者技术前线整理出品 知乎上有一个话题&a…

王垠受邀面试阿里 P9,被 P10 面跪后网上怒发文,惨打 325 的 P10 赵海平回应了!...

公众号关注 “GitHubDaily” 设为 “星标”&#xff0c;带你了解圈内新鲜事&#xff01; 整理自综合自知乎社区回答 & 互联网互联网坊间八卦 观点不代表本号立场 转自开发者技术前线 知乎上有一个话题&#xff1a;如何评价阿里 P10 赵海平对王垠的面试&#xff1f;最近成了…

神仙打架!传言阿里 P10 赵海平被 P11 多隆判定 3.25 离职,如何评价阿里 P10 赵海平对王垠的面试?...

来源&#xff1a;知乎 地址&#xff1a;https://www.zhihu.com/question/360622233 转自&#xff1a;人工智能爱好者社区 阿里P10也被325辞退&#xff1f; 最近几天的阿里圈也真的是很热闹。一个礼拜过去了&#xff0c;“最伟大的计算机科学家”赵海平一直沉默是金&#xff0c;…

赵海平专访【2015-03-26】

海平赵君&#xff0c;燕赵人也。年未弱冠已好奇巧编程之学。丁卯&#xff08;1987&#xff09;以状元入北大习生物&#xff0c;后弃美纽约大学博士&#xff0c;入普林斯顿获计算机科学硕士。曾供职微软年余&#xff0c;丁亥&#xff08;2007&#xff09;入脸书&#xff0c;创建…

清华天才王垠受邀面试阿里P9,被阿里P10赵海平面跪,整个事件回顾...

点击上方“视学算法”&#xff0c;选择“星标” 来源 &#xff1a;开发者技术前线 知乎上有一个话题&#xff1a;如何评价阿里 P10 赵海平对王垠的面试&#xff1f;最近成了热帖&#xff0c;这下赵海平跟王垠这次是真的火了。 由于本事件像电影的情节一环扣一环&#xff0c;文章…

阿里P10赵海平跳槽字节跳动:深度解析跳槽从开始到结束完整流程!

00. 前言 近期&#xff0c;有消息称&#xff0c;前阿里P10员工赵海平已加入字节跳动&#xff0c;职级为4。王垠加入华为职级为 21级。 事情起因还是从两人乌龙说起&#xff0c;详细经过请看&#xff1a;王垠受邀面试阿里P9&#xff0c;被P10面跪后网上怒发文&#xff0c;惨打…

清华天才王垠受邀面试阿里 P9,被面跪后网上怒发文,被惨打 3.25 的 P10 赵海平回应了!...

整理自综合自知乎社区回答 & 互联网互联网坊间八卦 观点不代表本号立场 知乎上有一个话题&#xff1a;如何评价阿里 P10 赵海平对王垠的面试&#xff1f;最近成了热帖&#xff0c;这下赵海平跟王垠这次是真的火了。 由于本事件像电影的情节一环扣一环&#xff0c;文章比较长…

清华天才王垠和阿里 P10 面试官赵海平神仙打架后,我们来说说技术面试中的该与不该!...

公众号关注 「奇妙的 Linux 世界」 设为「星标」&#xff0c;每天带你了解圈内新鲜事&#xff01; 近日&#xff0c;清华天才王垠受邀面试阿里 P9 后和阿里 P10 面试官赵海平在知乎上神仙打架后&#xff0c;技术圈对此进行了激烈的讨论。具体详见「清华天才王垠受邀面试阿里 P9…

阿里研究员赵海平:生物与计算机交织的独特人生

转自&#xff1a;http://www.csdn.net/article/2015-04-20/2824517/1 摘要&#xff1a;这是篇近万字的访谈文章&#xff0c;记录了赵海平小时候的故事、再现了从生物转学计算机时的痛苦抉择、揭秘了为什么会从微软到Facebook再到阿里、挖掘了HipHop背后的故事&#xff0c;同时也…

传言阿里P10赵海平,被P11多隆判定3.25离职,如何评价阿里 P10 赵海平对王垠的面试?

来源&#xff1a;知乎 地址&#xff1a;https://www.zhihu.com/question/360622233 转自&#xff1a;人工智能爱好者社区 阿里P10也被325辞退&#xff1f; 最近几天的阿里圈也真的是很热闹。一个礼拜过去了&#xff0c;“最伟大的计算机科学家”赵海平一直沉默是金&#xff0c…

清华才子王垠​加入华为职级22,前阿里P10赵海平加入字节跳动,职级或为4+

最近有消息称&#xff0c;王垠和华为高层接触&#xff0c;已确定加入华为。对此王垠与华为至今都未对此消息做出回应。&#xff08;正式消息待进一步确定&#xff09; 华大学计算机系直博 王垠 四川大学97级本科毕业&#xff0c;保送到清华大学计算机系直博。期间曾在清华大学计…

王垠受邀面试阿里P9,被P10面跪后网上怒发文,惨打325的P10赵海平回应了

知乎上有一个话题&#xff1a;如何评价阿里 P10 赵海平对王垠的面试&#xff1f;最近成了热帖&#xff0c;这下赵海平跟王垠这次是真的火了。 由于本事件像电影的情节一环扣一环&#xff0c;文章比较长&#xff0c;直接一句话说下该事件始末&#xff1a;网红王垠受邀面试阿里P9…

传言阿里P10赵海平,被P11多隆打3.25后离职,如何评价赵海平对王垠的面试?

点击“技术领导力”关注∆ 每天早上8:30推送 阿里P10也被325辞退&#xff1f; 最近几天的阿里圈也真的是很热闹。一个礼拜过去了&#xff0c;“最伟大的计算机科学家”赵海平一直沉默是金&#xff0c;吃瓜群众没等到他对王垠[yn]千字文的回应&#xff0c;但后续却依然来了。 近…

尘埃落定!清华才子王垠​加入华为职级 22,前阿里 P10 赵海平加入字节跳动,职级或为 4+...

事件具体来龙去脉&#xff0c;请参见我们之前文章报道&#xff1a; 王垠受邀面试阿里P9&#xff0c;被P10面跪后网上怒发文&#xff0c;惨打325的P10赵海平回应了&#xff01;神仙打架&#xff01;传言阿里P10赵海平被P11多隆判定3.25离职&#xff0c;如何评价阿里P10赵海平对王…

赵海平与张宏波谈编程语言

本文整理自字节跳动 Web Infra 团队与 稀土掘金技术社区 合办的 大咖面对面 活动&#xff0c;本期嘉宾邀请到了 ReScript 作者张宏波&#xff0c;与字节跳动资深架构师、HipHop for PHP 作者赵海平。正文内容有删减。 编程语言学到什么程度才算掌握&#xff1f; 张宏波&#xf…

海归王垠 V.S. 阿里P10赵海平,不对等面试所引起的争议

近日&#xff0c;“阿里P10赵海平面试王垠”引发程序员业内争议。此前&#xff0c;王垠受邀请去阿里巴巴面试&#xff0c;面试官是P10(研究员)的赵海平。王垠称在整个面试的过程&#xff0c;赵海平根本不是在发掘一个人的才能&#xff0c;而是质疑简历&#xff0c;同时贬损其博…