)
Android项目–关于星座相关的app第一部分–界面效果图页面一点击页面任意一个星座图标会显示相应的数据页面二可以更换男生或女生的星座点击开始配对分析能跳转相应的页面并显示相应的数据分析页面三点击任意一个图标跳转到相应的页面展示这一年的运势数据页面四点击头像能更换相应的星座下一次登录仍然会保存第二部分–图片素材以下是百度网盘的链接链接https://pan.baidu.com/s/1vbtOJNS-I2Lm1JXXxumZSg提取码1111第三部分–部分代码-XingZuoWeb我的项目名称—app—src—main–java–com.example.xingzuoweb自己创建的包名–MainActivitypackagecom.example.xingzuoweb;importandroidx.appcompat.app.AppCompatActivity;importandroidx.fragment.app.Fragment;importandroidx.fragment.app.FragmentManager;importandroidx.fragment.app.FragmentTransaction;importandroid.os.Bundle;importandroid.widget.RadioGroup;importcom.example.xingzuoweb.bean.StarBean;importcom.example.xingzuoweb.luckfrag.LuckFragment;importcom.example.xingzuoweb.mefrag.MeFragment;importcom.example.xingzuoweb.parnterfrag.PartnerFragment;importcom.example.xingzuoweb.starfrag.StarFragment;importcom.example.xingzuoweb.utils.AssetsUtils;importcom.google.gson.Gson;publicclassMainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener{RadioGroup mainRg;//声明四个按钮对应的Fragment对象Fragment starFrag,luckFrag,partnerFrag,meFrag;privateFragmentManager manager;privateFragmentTransaction fragmentTransaction;privateFragmentTransaction transaction;privateFragmentTransaction fragmentTransaction1;privateObject FragmentTransaction;privateString jsonFromAssets;OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mainRgfindViewById(R.id.main_rg);//设置监听器点击了哪个单选按钮mainRg.setOnCheckedChangeListener(this);//加载星座的数据StarBean infoBeanloadData();Bundle bundlenewBundle();bundle.putSerializable(info,infoBean);//创建碎片对象starFragnewStarFragment();starFrag.setArguments(bundle);luckFragnewLuckFragment();luckFrag.setArguments(bundle);partnerFragnewPartnerFragment();partnerFrag.setArguments(bundle);meFragnewMeFragment();meFrag.setArguments(bundle);//将四个Fragment进行动态加载一起加载到布局当中。addFragmentPage();}//读取assets下的文件privateStarBeanloadData(){String jsonAssetsUtils.getJsonFromAssets(this,xzcontent/xzcontent.json);Gson gsonnewGson();StarBean infoBeangson.fromJson(json,StarBean.class);AssetsUtils.saveBitmapFromAssets(this,infoBean);returninfoBean;}//将主页当中的碎片一起加载进入布局有用的显示暂时无用的隐藏。privatevoidaddFragmentPage(){//1.创建碎片管理者对象managergetSupportFragmentManager();//2.创建碎片处理事务的对象FragmentTransaction transactionmanager.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();}OverridepublicvoidonCheckedChanged(RadioGroup group,int checkedId){FragmentTransaction transactionmanager.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自己创建的包—StarBeanpackagecom.example.xingzuoweb.bean;importjava.io.Serializable;importjava.util.List;publicclassStarBean implements Serializable{privateListStarinfoBeanstarinfo;publicListStarinfoBeangetStarinfo(){returnstarinfo;}publicvoidsetStarinfo(ListStarinfoBeanstarinfo){this.starinfostarinfo;}publicstaticclassStarinfoBean implements Serializable{/** * logoname : baiyang * name : 白羊座 * date : 3月21日-4月19日 * td : 热情活力 * gw : 第一宫 * yy : 阳性 * tz : 控制 * zg : 火星 * ys : 红色 * zb : 红宝石 * hm : 5 * js : 铁 * info : 白羊座有一种让人看见就觉得开心的感觉因为总是看起来都是那么地热情、阳光、乐观、坚强对朋友也慷概大方性格直来直往就是有点小脾气。白羊男有大男人主义的性格而白羊女就是女汉子的形象。 */privateString logoname;privateString name;privateString date;privateString td;privateString gw;privateString yy;privateString tz;privateString zg;privateString ys;privateString zb;privateString hm;privateString js;privateString info;publicStringgetLogoname(){returnlogoname;}publicvoidsetLogoname(String logoname){this.logonamelogoname;}publicStringgetName(){returnname;}publicvoidsetName(String name){this.namename;}publicStringgetDate(){returndate;}publicvoidsetDate(String date){this.datedate;}publicStringgetTd(){returntd;}publicvoidsetTd(String td){this.tdtd;}publicStringgetGw(){returngw;}publicvoidsetGw(String gw){this.gwgw;}publicStringgetYy(){returnyy;}publicvoidsetYy(String yy){this.yyyy;}publicStringgetTz(){returntz;}publicvoidsetTz(String tz){this.tztz;}publicStringgetZg(){returnzg;}publicvoidsetZg(String zg){this.zgzg;}publicStringgetYs(){returnys;}publicvoidsetYs(String ys){this.ysys;}publicStringgetZb(){returnzb;}publicvoidsetZb(String zb){this.zbzb;}publicStringgetHm(){returnhm;}publicvoidsetHm(String hm){this.hmhm;}publicStringgetJs(){returnjs;}publicvoidsetJs(String js){this.jsjs;}publicStringgetInfo(){returninfo;}publicvoidsetInfo(String info){this.infoinfo;}}}com.example.xingzuoweb—home--GuideActivitypackagecom.example.xingzuoweb.home;importandroidx.appcompat.app.AppCompatActivity;importandroidx.viewpager.widget.ViewPager;importandroid.content.Intent;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.ImageView;importandroid.widget.LinearLayout;importcom.example.xingzuoweb.MainActivity;importcom.example.xingzuoweb.R;importjava.util.ArrayList;importjava.util.List;publicclassGuideActivity extends AppCompatActivity{ViewPager guideVp;ListImageViewmDatas;//存放三张图片的地址int resIds[]{R.mipmap.loading1,R.mipmap.loading2,R.mipmap.loading3};OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_guide);guideVpfindViewById(R.id.guide_vp);mDatasnew ArrayList();initPager();//为第三个图片设置监听事件setListener();}privatevoidsetListener(){int sizemDatas.size();ImageView viewmDatas.get(size-1);view.setOnClickListener(new View.OnClickListener(){OverridepublicvoidonClick(View v){Intent intentnewIntent(GuideActivity.this,MainActivity.class);startActivity(intent);finish();}});}privatevoidinitPager(){for(int i0;iresIds.length;i){ImageView imageViewnewImageView(this);imageView.setImageResource(resIds[i]);imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);LinearLayout.LayoutParams lpnew LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);imageView.setLayoutParams(lp);mDatas.add(imageView);}GuideAdapter adapternewGuideAdapter(mDatas);//设置适配器guideVp.setAdapter(adapter);}}com.example.xingzuoweb—home--GuideAdapterpackagecom.example.xingzuoweb.home;importandroid.content.Context;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.ImageView;importandroidx.annotation.NonNull;importandroidx.viewpager.widget.PagerAdapter;importjava.util.List;publicclassGuideAdapter extends PagerAdapter{ListImageViewmDatas;publicGuideAdapter(ListImageViewmDatas){this.mDatasmDatas;}OverridepublicintgetCount(){returnmDatas.size();}OverridepublicbooleanisViewFromObject(NonNullView view,NonNullObjectobject){returnviewobject;}NonNullOverridepublicObjectinstantiateItem(NonNullViewGroup container,int position){ImageView imageViewmDatas.get(position);container.addView(imageView);returnimageView;}OverridepublicvoiddestroyItem(NonNullViewGroup container,int position,NonNullObjectobject){ImageView imageViewmDatas.get(position);container.removeView(imageView);}}-com.example.xingzuoweb—home—WelcomeActivitypackagecom.example.xingzuoweb.home;importandroidx.annotation.NonNull;importandroidx.appcompat.app.AppCompatActivity;importandroid.content.Intent;importandroid.content.SharedPreferences;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.widget.TextView;importcom.example.xingzuoweb.MainActivity;importcom.example.xingzuoweb.R;publicclassWelcomeActivity extends AppCompatActivity{TextView tv;int count3;Handler handlernewHandler(){OverridepublicvoidhandleMessage(NonNullMessage msg){if(msg.what1){count--;if(count0){//判断是否是第一次进入应用如果是第一次进入此应用跳转到引导页面boolean isFirstpref.getBoolean(isFirst,true);Intent intentnewIntent();if(isFirst){intent.setClass(WelcomeActivity.this,GuideActivity.class);SharedPreferences.Editor editorpref.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);}}}};privateSharedPreferences pref;OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_welcome);tvfindViewById(R.id.welcome_tv);prefgetSharedPreferences(first_pref,MODE_PRIVATE);handler.sendEmptyMessageDelayed(1,500);}}第四部分–打包后的apk以下是百度网盘的链接点击链接即可下载https://pan.baidu.com/s/1u0iUk5glF11BRy-bYHub6g提取码1111小伙伴们~ 由于代码量很大需要完整的代码可以点击链接XingZuoWeb.zip 进行下载哦~留言创作不易感谢支持。下期再见