国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

安卓期末項目:星座App

這篇具有很好參考價值的文章主要介紹了安卓期末項目:星座App。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一,項目介紹:

二,項目功能介紹

?????????1 查看星座

?????????2 星座匹配

?????????3 查看運勢

????????4 本軟件介紹?

三,核心代碼

(1)首頁Mactivity核心代碼

(2)首頁查看星座

(3)星座的匹配

??(4)查看運勢

?????????(5)本軟件介紹

四,項目源碼


一,項目介紹:

? ? ? ? 本項目由4個功能:第1個是查看各個星座的詳情頁;第2個是匹配你的星座的另一半星座;第3個是查看運勢,查看你的星座的運勢,看你的事業(yè)運勢;愛情運勢等等,第4查看本軟件的介紹,并且可以選擇自己的星座;

二,項目功能介紹

?1 查看星座

安卓期末項目:星座App

圖1.1:所述←
首頁星座卡看頁←
安卓期末項目:星座App

?圖1.2:所述←
選擇金牛座,查看金牛座的詳情頁

安卓期末項目:星座App

?圖1.3:所述←
該圖可以看到金牛座的性格特點,幸運號碼,相匹配的金屬等等信息←

?2 星座匹配

安卓期末項目:星座App

?圖2.1:所述
該圖為星座匹配布局頁

安卓期末項目:星座App

?圖2.2:所述←
選擇好男生和女生對應的星座后,開始匹配←

安卓期末項目:星座App

圖2.3:所述←
該圖:顯示不同星座對應的匹配顯示的匹配評分,解析等等內容,這些數據皆來自
于星座接口API←

?3 查看運勢

安卓期末項目:星座App

圖3.1:所述

選擇運勢的按鈕,將頁面跳轉到運勢頁

安卓期末項目:星座App

圖3.2:所述←
查看金牛座,查看金牛座的運勢詳情頁
安卓期末項目:星座App圖3.3:所述←
查看金牛座的詳情頁,可以查看綜合運勢,愛情運勢,事業(yè)學業(yè)等等<
?

4 本軟件介紹?

安卓期末項目:星座App

?圖4.1:所述←
這里是關于用戶自己所屬的星座和本軟件的介紹←

三,核心代碼

(1)首頁Mactivity核心代碼

package com.animee.constellation;

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.animee.constellation.bean.StarBean;
import com.animee.constellation.luckfrag.LuckFragment;
import com.animee.constellation.mefrag.MeFragment;
import com.animee.constellation.parnterfrag.PartnerFragment;
import com.animee.constellation.starfrag.StarFragment;
import com.animee.constellation.utils.AssetsUtils;
import com.google.gson.Gson;

/**
 * (1)創(chuàng)建整個布局
 */
public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener {
    RadioGroup mainRg;
//    聲明四個按鈕對應的Fragment對象
    Fragment starFrag,luckFrag,partnerFrag,meFrag;
    private FragmentManager manager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_01);
        mainRg = findViewById(R.id.main_rg);
//        設置監(jiān)聽點擊了哪個單選按鈕
        mainRg.setOnCheckedChangeListener(this);
//        加載星座相關數據  /assets/xzcontent/xzcontent.json
        StarBean infoBean = loadData();
        Bundle bundle = new Bundle();
        bundle.putSerializable("info",infoBean);
//        創(chuàng)建碎片對象
        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進行動態(tài)加載,一起加載到布局當中。replace       add/hide/show
        addFragmentPage();
    }
    /* 讀取assets文件夾下的xzcontent.json文件*/
    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;
    }

    /**
     * (1)
     * @des 將主頁當中的碎片一起加載進入布局,有用的顯示,暫時無用的隱藏
     * */
    private void addFragmentPage() {
//        1.創(chuàng)建碎片管理者對象
        manager = getSupportFragmentManager();
//        2.創(chuàng)建碎片處理事務的對象
        FragmentTransaction transaction = manager.beginTransaction();
//        3.將四個Fragment統(tǒng)一的添加到布局當中
        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();
    }

    @Override
    public 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_partner:
                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();
    }
}

activity_main_01.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/main_tv_title"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="@string/app_name"
        android:background="@color/lightyellow"
        android:gravity="center"
        android:textSize="20sp"
        android:textStyle="bold"
        android:textColor="@color/pink"/>
    <RadioGroup
        android:id="@+id/main_rg"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal"
        android:background="@color/lightyellow"
        android:layout_alignParentBottom="true"
        android:padding="5dp">
        <RadioButton
            android:id="@+id/main_rb_star"
            style="@style/main_rb"
            android:drawableTop="@drawable/main_rb_star"
            android:text="@string/label_star"
            android:checked="true"/>
        <RadioButton
            android:id="@+id/main_rb_partner"
            style="@style/main_rb"
            android:text="@string/label_parnter"
            android:drawableTop="@drawable/main_rb_parnter"/>
        <RadioButton
            android:id="@+id/main_rb_luck"
            style="@style/main_rb"
            android:text="@string/label_luck"
            android:drawableTop="@drawable/main_rb_luck"/>
        <RadioButton
            android:id="@+id/main_rb_me"
            style="@style/main_rb"
            android:text="@string/label_me"
            android:drawableTop="@drawable/main_rb_me"/>
    </RadioGroup>
    <!-- 中間部分使用布局進行占位,會去使用Fragment替換這塊布局-->
    <LinearLayout
        android:id="@+id/main_layout_center"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_below="@id/main_tv_title"
        android:layout_above="@id/main_rg"/>
</RelativeLayout>

(2)首頁查看星座

package com.animee.constellation.starfrag;

import androidx.appcompat.app.AppCompatActivity;
import de.hdodenhof.circleimageview.CircleImageView;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import com.animee.constellation.R;
import com.animee.constellation.bean.StarBean;
import com.animee.constellation.utils.AssetsUtils;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * (1)星座布局---調用layout頁面
 */
public class StarAnalysisActivity extends AppCompatActivity implements View.OnClickListener {
    TextView titleTv;
    ImageView backIv;
    CircleImageView iconIv;
    TextView nameTv,dateTv;
    ListView analysisLv;
    StarBean.StarinfoBean bean;
    private Map<String, Bitmap> contentlogoImgMap;
    private TextView footerTv;  //ListView底部布局當中需要改變的TextView
    List<StarAnalysisBean>mDatas;
    private AnalysisBaseAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_star_analysis_01);
//        獲取上一級界面?zhèn)鬟f過來的數據
        Intent intent = getIntent();
        bean = (StarBean.StarinfoBean) intent.getSerializableExtra("star");
        initView();
        mDatas = new ArrayList<>();   //初始化顯示在ListView上的數據源
        adapter = new AnalysisBaseAdapter(this, mDatas);
        analysisLv.setAdapter(adapter);
        addDataToList();
    }
    /* 加載ListView當中的數據源內容*/
    private void addDataToList() {
        StarAnalysisBean sab1 = new StarAnalysisBean("性格特點 :", bean.getTd(), R.color.lightblue);
        StarAnalysisBean sab2 = new StarAnalysisBean("掌管宮位 :", bean.getGw(), R.color.lightpink);
        StarAnalysisBean sab3 = new StarAnalysisBean("顯陰陽性 :", bean.getYy(), R.color.lightgreen);
        StarAnalysisBean sab4 = new StarAnalysisBean("最大特征 :", bean.getTz(), R.color.purple);
        StarAnalysisBean sab5 = new StarAnalysisBean("主管星球 :", bean.getZg(), R.color.orange);
        StarAnalysisBean sab6 = new StarAnalysisBean("幸運顏色 :", bean.getYs(), R.color.colorAccent);
        StarAnalysisBean sab7 = new StarAnalysisBean("搭配珠寶 :", bean.getZb(), R.color.colorPrimary);
        StarAnalysisBean sab8 = new StarAnalysisBean("幸運號碼 :", bean.getHm(), R.color.grey);
        StarAnalysisBean sab9 = new StarAnalysisBean("相配金屬 :", bean.getJs(), R.color.darkblue);
        mDatas.add(sab1);
        mDatas.add(sab2);
        mDatas.add(sab3);
        mDatas.add(sab4);
        mDatas.add(sab5);
        mDatas.add(sab6);
        mDatas.add(sab7);
        mDatas.add(sab8);
        mDatas.add(sab9);

//        數據源發(fā)生變化,提示適配器更新
        adapter.notifyDataSetChanged();
    }

    /* 初始化控件*/
    private void initView() {
        titleTv = findViewById(R.id.title_tv);
        backIv = findViewById(R.id.title_iv_back);
        iconIv = findViewById(R.id.staranalysis_iv);
        nameTv = findViewById(R.id.staranalysis_tv_name);
        dateTv = findViewById(R.id.staranalysis_tv_date);
        analysisLv = findViewById(R.id.staranalysis_lv);
//        為ListView添加底部布局
        View footerView = LayoutInflater.from(this).inflate(R.layout.footer_star_analysis_01, null);
        analysisLv.addFooterView(footerView);
        footerTv = footerView.findViewById(R.id.footerstar_tv_info);
//      將數據進行顯示
        titleTv.setText("星座詳情");
        backIv.setOnClickListener(this);
        nameTv.setText(bean.getName());
        dateTv.setText(bean.getDate());
        contentlogoImgMap = AssetsUtils.getContentlogoImgMap();
        Bitmap bitmap = contentlogoImgMap.get(bean.getLogoname());
        iconIv.setImageBitmap(bitmap);
        footerTv.setText(bean.getInfo());
    }

    @Override
    public void onClick(View v) {
        finish();
    }
}

activity_info_list_02.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/bgyellow"
    tools:context=".starfrag.StarAnalysisActivity">
    <include layout="@layout/title_layout_01"/>

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/staranalysis_iv"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_marginTop="40dp"
        android:layout_gravity="center"
        app:civ_border_color="@color/lightpink"
        app:civ_border_width="2dp"
        android:src="@mipmap/ic_launcher"/>

    <TextView
        android:id="@+id/staranalysis_tv_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="10dp"
        android:textSize="16sp"
        android:textStyle="bold"
        android:text="白羊座"/>

    <TextView
        android:id="@+id/staranalysis_tv_date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="10dp"
        android:textSize="16sp"
        android:textStyle="bold"
        android:text="3月21日--4月19日"
        android:background="@color/lightpink"
        android:textColor="@color/white"/>

    <ListView
        android:id="@+id/staranalysis_lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="20dp"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:scrollbars="none"/>
</LinearLayout>

(3)星座的匹配

package com.animee.constellation.parnterfrag;

import androidx.appcompat.app.AppCompatActivity;
import de.hdodenhof.circleimageview.CircleImageView;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.animee.constellation.R;
import com.animee.constellation.utils.AssetsUtils;
import com.animee.constellation.utils.LoadDataAsyncTask;
import com.animee.constellation.utils.URLContent;
import com.google.gson.Gson;

import java.util.Map;

/**
 * (2)星座配對---調用layout
 */
public class ParnterAnalysisActivity extends AppCompatActivity implements LoadDataAsyncTask.OnGetNetDataListener, View.OnClickListener {
    TextView manTv,womanTv,pdTv,vsTv,pfTv,bzTv,jxTv,zyTv,titleTv;
    CircleImageView manIv,womanIv;
    ImageView backIv;
    private String man_name;
    private String man_logoname;
    private String woman_name;
    private String woman_logoname;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_parnter_analysis_02);
        initView();
//        接收上一個頁面?zhèn)鬟f的數值
        getLastData();
//        獲取網絡路徑地址
        String parnterURL = URLContent.getParnterURL(man_name, woman_name);
//        加載網絡數據
//        1.創(chuàng)造自定義的異步任務的對象
        LoadDataAsyncTask task = new LoadDataAsyncTask(this, this, true);
//        2.執(zhí)行異步任務
        task.execute(parnterURL);
    }
    @Override
    public void onSuccess(String json) {
//        解析數據
        if (!TextUtils.isEmpty(json)) {
            ParnterAnalysisBean analysisBean = new Gson().fromJson(json, ParnterAnalysisBean.class);
            ParnterAnalysisBean.ResultBean resultBean = analysisBean.getResult();

            pfTv.setText("配對評分: "+resultBean.getZhishu()+"  "+resultBean.getJieguo());
            bzTv.setText("星座比重: "+resultBean.getBizhong());
            jxTv.setText("解析:\n\n"+resultBean.getLianai());
            zyTv.setText("注意事項:\n\n"+resultBean.getZhuyi());
        }

    }
    private void getLastData() {
        Intent intent = getIntent();
        man_name = intent.getStringExtra("man_name");
        man_logoname = intent.getStringExtra("man_logoname");
        woman_name = intent.getStringExtra("woman_name");
        woman_logoname = intent.getStringExtra("woman_logoname");
//        設置能夠顯示的控件的信息
        Map<String, Bitmap> contentlogoImgMap =
                AssetsUtils.getContentlogoImgMap();
        Bitmap manBitmap = contentlogoImgMap.get(man_logoname);
        manIv.setImageBitmap(manBitmap);
        Bitmap womanBitmap = contentlogoImgMap.get(woman_logoname);
        womanIv.setImageBitmap(womanBitmap);

        manTv.setText(man_name);
        womanTv.setText(woman_name);
        pdTv.setText("星座配對-"+man_name+"和"+woman_name+"配對");
        vsTv.setText(man_name+" vs "+woman_name);
    }

    private void initView() {
        manIv = findViewById(R.id.parnteranalysis_iv_man);
        womanIv = findViewById(R.id.parnteranalysis_iv_woman);
        backIv = findViewById(R.id.title_iv_back);
        manTv = findViewById(R.id.parnteranalysis_tv_man);
        womanTv = findViewById(R.id.parnteranalysis_tv_woman);
        pdTv = findViewById(R.id.parnteranalysis_tv_pd);
        vsTv = findViewById(R.id.parnteranalysis_tv_vs);
        pfTv = findViewById(R.id.parnteranalysis_tv_pf);
        bzTv = findViewById(R.id.parnteranalysis_tv_bz);
        jxTv= findViewById(R.id.parnteranalysis_tv_jx);
        zyTv = findViewById(R.id.parnteranalysis_tv_zy);
        titleTv = findViewById(R.id.title_tv);
        backIv.setOnClickListener(this);
        titleTv.setText("配對詳情");
    }


    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.title_iv_back:
                finish();
                break;
        }
    }
}

fragment_partner_02.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp"
    android:background="@color/bgyellow"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:orientation="horizontal"
        android:layout_margin="10dp"
        android:background="@drawable/parnter_man">
        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="@string/man"
            android:textSize="18sp"
            android:textStyle="bold"
            android:gravity="center"
            android:textColor="@color/white"/>
        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="10dp"
            android:id="@+id/parnterfrag_iv_man"/>
        <Spinner
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:layout_gravity="center_vertical"
            android:id="@+id/parnterfrag_sp_man"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:orientation="horizontal"
        android:layout_margin="10dp"
        android:background="@drawable/parnter_woman">
        <TextView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:text="@string/woman"
            android:textSize="18sp"
            android:textStyle="bold"
            android:gravity="center"
            android:textColor="@color/white"/>
        <ImageView
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_margin="10dp"
            android:id="@+id/parnterfrag_iv_woman"/>
        <Spinner
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:layout_gravity="center_vertical"
            android:id="@+id/parnterfrag_sp_woman"/>
    </LinearLayout>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:textSize="16sp"
        android:text="@string/parnter_info"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:text="@string/parnter_btn_prize"
        android:layout_gravity="center"
        android:layout_marginTop="150dp"
        android:background="@drawable/dock"
        android:id="@+id/parnterfrag_btn_prize"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:text="@string/parnter_btn_analysis"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:background="@drawable/dock"
        android:id="@+id/parnterfrag_btn_analysis"/>
</LinearLayout>

(4)查看運勢

package com.animee.constellation.luckfrag;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

import com.animee.constellation.R;
import com.animee.constellation.utils.LoadDataAsyncTask;
import com.animee.constellation.utils.URLContent;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

/**
 * (3)星座運勢---調用layout
 */
public class LuckAnalysisActivity extends AppCompatActivity implements View.OnClickListener,LoadDataAsyncTask.OnGetNetDataListener {
    ListView luckLv;
    TextView nameTv;
    ImageView backIv;
    List<LuckItemBean>mDatas;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_luck_analysis_03);
        Intent intent = getIntent();
        String name = intent.getStringExtra("name");  //獲取上一級界面?zhèn)鬟f的星座名詞
//        獲取網址
        String luckURL = URLContent.getLuckURL(name);
        initView(name);
        mDatas = new ArrayList<>();
//        獲取網絡請求
        LoadDataAsyncTask task = new LoadDataAsyncTask(this, this, true);
        task.execute(luckURL);
    }

    private void initView(String name) {
        // 查找控件
        luckLv = findViewById(R.id.luckanalysis_lv);
        nameTv = findViewById(R.id.title_tv);
        backIv = findViewById(R.id.title_iv_back);
        nameTv.setText(name);
        backIv.setOnClickListener(this);
    }
//  獲取網絡數據成功時會回調的方法
    @Override
    public void onSuccess(String json) {
        if (!TextUtils.isEmpty(json)) {
//            數據的解析
            LuckBean luckBean = new Gson().fromJson(json, LuckBean.class);
//          為了顯示在ListView上,重新整理數據,整理成集合的形式
            addDataToList(luckBean);
//            設置適配器
            LuckAnalysisAdapter adapter = new LuckAnalysisAdapter(this, mDatas);
            luckLv.setAdapter(adapter);
        }
    }
    /* 整理數據到集合當中*/
    private void addDataToList(LuckBean luckBean) {
        LuckItemBean lib1 = new LuckItemBean("綜合運勢",luckBean.getMima().getText().get(0), Color.BLUE);
        LuckItemBean lib2 = new LuckItemBean("愛情運勢",luckBean.getLove().get(0),Color.GREEN);
        LuckItemBean lib3 = new LuckItemBean("事業(yè)學業(yè)",luckBean.getCareer().get(0),Color.GRAY);
        LuckItemBean lib4 = new LuckItemBean("健康運勢",luckBean.getHealth().get(0),Color.RED);
        LuckItemBean lib5 = new LuckItemBean("財富運勢",luckBean.getFinance().get(0),Color.BLACK);
        mDatas.add(lib1);
        mDatas.add(lib2);
        mDatas.add(lib3);
        mDatas.add(lib4);
        mDatas.add(lib5);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.title_iv_back:
                finish();
                break;
        }
    }

}

activity_luck_analysis_03.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/bgyellow">
    <include layout="@layout/title_layout_01"/>
    <ListView
        android:id="@+id/luckanalysis_lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:scrollbars="none"
        android:layout_margin="20dp"/>
</LinearLayout>

(5)本軟件介紹

package com.animee.constellation.mefrag;

import android.app.Dialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.os.Bundle;

import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import de.hdodenhof.circleimageview.CircleImageView;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.TextView;

import com.animee.constellation.R;
import com.animee.constellation.bean.StarBean;
import com.animee.constellation.luckfrag.LuckBaseAdapter;
import com.animee.constellation.utils.AssetsUtils;

import java.util.List;
import java.util.Map;


/**
 * (4)我自己的版本-----調用layuout
 * A simple {@link Fragment} subclass.
 */
public class MeFragment extends Fragment implements View.OnClickListener {
    CircleImageView iconIv;
    TextView nameTv;
    private Map<String, Bitmap> imgMap;
    private List<StarBean.StarinfoBean> mDatas;
    private SharedPreferences star_pref;
    //  保存選擇的星座位置
    int selectPos = 0;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//        獲取activity傳遞的數據
        Bundle bundle = getArguments();
        StarBean infoBean = (StarBean) bundle.getSerializable("info");
        mDatas = infoBean.getStarinfo();
        star_pref = getContext().getSharedPreferences("star_pref", Context.MODE_PRIVATE);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view =  inflater.inflate(R.layout.fragment_me_04, container, false);
        iconIv = view.findViewById(R.id.mefrag_iv);
        nameTv = view.findViewById(R.id.mefrag_tv_name);
        iconIv.setOnClickListener(this);
//        進行初始化設置
        imgMap = AssetsUtils.getContentlogoImgMap();
//        讀取共享參數當中保存的星座名稱和logo名稱
        String name = star_pref.getString("name", "白羊座");
        String logoname = star_pref.getString("logoname", "baiyang");
        Bitmap bitmap = imgMap.get(logoname);
        iconIv.setImageBitmap(bitmap);
        nameTv.setText(name);
        return view;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.mefrag_iv:
                showDialog();
                break;
        }
    }

    /**
     * (4)顯示自己的星座
     */
    private void showDialog() {
        final Dialog dialog = new Dialog(getContext());
        View dialogView = LayoutInflater.from(getContext()).inflate(R.layout.me_dialog_04,null);
        dialog.setContentView(dialogView);
        dialog.setTitle("請選擇您的星座:");
        GridView dialogGv = dialogView.findViewById(R.id.mefrag_dialog_gv);
//        設置適配器
        LuckBaseAdapter adapter = new LuckBaseAdapter(getContext(),mDatas);
        dialogGv.setAdapter(adapter);
//        設置能否被取消
        dialog.setCancelable(true);
//        設置點擊彈出框的外部,可以取消彈出框
        dialog.setCanceledOnTouchOutside(true);

//        設置gridview每一項的點擊事件
        dialogGv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                StarBean.StarinfoBean bean = mDatas.get(position);
                String name = bean.getName();
                String logoname = bean.getLogoname();
                nameTv.setText(name);
                Bitmap bitmap = imgMap.get(logoname);
                iconIv.setImageBitmap(bitmap);
                selectPos = position;   //保存選擇的位置
                dialog.cancel();
            }
        });
        dialog.show();
    }

    @Override
    public void onPause() {
        super.onPause();
        StarBean.StarinfoBean bean = mDatas.get(selectPos);
        String name = bean.getName();
        String logoname = bean.getLogoname();
        SharedPreferences.Editor editor = star_pref.edit();   // 獲取向共享參數中寫入數據的對象
        editor.putString("name",name);
        editor.putString("logoname",logoname);
        editor.commit();
    }
}

fragment_me_04.xml文章來源地址http://www.zghlxwxcb.cn/news/detail-481750.html

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/bgyellow"
    android:orientation="vertical">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/mefrag_iv"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="50dp"
        app:civ_border_width="2dp"
        app:civ_border_color="@color/grey"/>

    <TextView
        android:id="@+id/mefrag_tv_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="白羊座"
        android:textSize="18sp"
        android:textStyle="bold"
        android:layout_gravity="center_horizontal"
        android:layout_marginBottom="50dp"
        android:layout_marginTop="10dp"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">
        <View
            android:layout_width="4dp"
            android:layout_height="30dp"
            android:layout_gravity="center_vertical"
            android:background="@color/colorAccent"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="10dp"/>
        <TextView
            android:id="@+id/mefrag_tv_about"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="@string/about_app"
            android:textSize="20sp"
            android:gravity="center|left"/>
    </LinearLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@color/white"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">
        <View
            android:layout_width="4dp"
            android:layout_height="30dp"
            android:layout_gravity="center_vertical"
            android:background="@color/colorAccent"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="10dp"/>
        <TextView
            android:id="@+id/mefrag_tv_function"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="@string/function"
            android:textSize="20sp"
            android:gravity="center|left"/>
    </LinearLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@color/white"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">
        <View
            android:layout_width="4dp"
            android:layout_height="30dp"
            android:layout_gravity="center_vertical"
            android:background="@color/colorAccent"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="10dp"/>
        <TextView
            android:id="@+id/mefrag_tv_update"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="@string/update"
            android:textSize="20sp"
            android:gravity="center|left"/>
    </LinearLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@color/white"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal">
        <View
            android:layout_width="4dp"
            android:layout_height="30dp"
            android:layout_gravity="center_vertical"
            android:background="@color/colorAccent"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="10dp"/>
        <TextView
            android:id="@+id/mefrag_tv_feedback"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="@string/feedback"
            android:textSize="20sp"
            android:gravity="center|left"/>
    </LinearLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="2dp"
        android:background="@color/white"/>
</LinearLayout>

四,項目源碼

? ? ? ? 項目源碼:放在評論區(qū)里

到了這里,關于安卓期末項目:星座App的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 安卓期末大作業(yè)-圖書館借書系統(tǒng)、圖書借閱app(附下載鏈接)

    安卓期末大作業(yè)-圖書館借書系統(tǒng)、圖書借閱app(附下載鏈接)

    安卓期末大作業(yè),圖書借閱APP,老師給了95分,可以注冊登錄,借閱書籍,還書,含數據庫存儲借書記錄,導入AndroidStudio即可使用,代碼注釋詳細 點我下載項目源碼 進入APP界面: 注冊登錄界面如下所示: 登錄界面: 注冊部分代碼: @Override protected void onStop() { super.onStop();

    2024年02月03日
    瀏覽(21)
  • 安卓期末大作業(yè)(AndroidStudio開發(fā)),垃圾分類app,代碼有注釋,能正常運行

    安卓期末大作業(yè)(AndroidStudio開發(fā)),垃圾分類app,代碼有注釋,能正常運行

    安卓期末大作業(yè) ?app使用的是sqlite數據庫,使用的核心類及其組件:Base Adapter,Fragment,View Pager,Alert Dialog.Builder,Option,Animation Draw able(關鍵幀動畫),Media Player(視頻),Count Down Timer(倒計時 廣告頁用),Spinner等 該分類助手的功能是管理員先登錄進入后臺界面,將數據

    2024年02月12日
    瀏覽(19)
  • 【嵌入式Linux項目】基于Linux的全志H616開發(fā)板智能家居項目(語音控制、人臉識別、安卓APP和PC端QT客戶端遠程操控)有視頻功能展示

    【嵌入式Linux項目】基于Linux的全志H616開發(fā)板智能家居項目(語音控制、人臉識別、安卓APP和PC端QT客戶端遠程操控)有視頻功能展示

    目錄 一、功能需求 二、開發(fā)環(huán)境 1、硬件: 2、軟件: 3、引腳分配: 三、關鍵點 1、設計模式之工廠模式 2、線程 3、wiringPi庫下的相關硬件操作函數調用 4、語音模塊的串口通信 5、攝像頭的實時監(jiān)控和拍照功能 6、人臉識別 7、qt程序跨平臺運行(編譯成安卓APP) 四、編譯和

    2024年02月15日
    瀏覽(24)
  • 安卓的工程目錄文件夾簡單介紹

    安卓的工程目錄文件夾簡單介紹

    當創(chuàng)建了一個安卓工程之后,系統(tǒng)會生成很多文件夾,那么這些文件夾都存放的是什么東西呢? src:存放java代碼,有包,有文件。相當于普通java程序的src文件夾。 gen:存放自動生成的文件。R.java存放的是程序的頁面、按鍵、文本等的id。 Android 4.4和Android Private Libaries:安卓

    2024年02月05日
    瀏覽(27)
  • 【Android Studio】安卓APP期末作品記錄之連接sqlite數據庫以及簡單的sqlite增刪改查

    【Android Studio】安卓APP期末作品記錄之連接sqlite數據庫以及簡單的sqlite增刪改查

    期末作品要求使用數據庫,我自己折騰了一會,又看了很多博主發(fā)的文章,終于成功了,特此記錄:使用SQLiteDatabase和SQLiteOpenHelper連接已有sqlite數據庫。 第一步,導入sqlite數據庫 因為我已經創(chuàng)建好了一個sqlite數據庫,所以第一步得將我的數據庫導入項目中 在app — src — ma

    2024年02月03日
    瀏覽(36)
  • Android期末項目 新聞APP的設計與實現

    Android期末項目 新聞APP的設計與實現

    1 項目基本信息 1.1 項目名稱 好好學習新聞APP的設計與實現 1.2 開發(fā)運行環(huán)境 Android Studio 2022 Android SDK 7.0 SQLite 5.4.1 Gradle 7.5 JDK 1.8.0 虛擬機 Pixel 2 API 30 2 1.3 使用的核心類及組件 Activity:Android系統(tǒng)中的四大組件之一,它是一種應用程序組件,用于提供用戶交互界面和對用戶輸入

    2024年02月05日
    瀏覽(32)
  • uni-app---- 點擊按鈕撥打電話功能&&點擊按鈕調用高德地圖進行導航的功能【安卓app端】

    uni-app---- 點擊按鈕撥打電話功能&&點擊按鈕調用高德地圖進行導航的功能【安卓app端】

    先上效果圖: 1. 在封裝方法的文件夾下新建一個js文件,然后把這些功能進行封裝 2.在需要的頁面中進行調用 注意點: 1. 撥打電話需要進行app權限配置,設置完成后可以在正式版看到效果。(這幾個最好都勾選上) 2. 配置高德地圖的app模塊設置,這里的appkey需要到高德地圖

    2024年02月05日
    瀏覽(101)
  • Android期末項目:美食點餐APP的設計與實現

    Android期末項目:美食點餐APP的設計與實現

    目錄 1 項目基本信息 1.1?項目名稱 1.2 開發(fā)運行環(huán)境 1.3?使用的核心類及組件 2 項目需求分析 2.1?APP管理員 2.2?APP用戶 3?項目開發(fā)過程 3.1 APP功能模塊 3.2 數據庫設計 3.3具體實現 3.3.1 用戶注冊與登錄 3.3.2?fragment首頁界面 3.3.3?fragment不同界面切換功能 3.3.4?fragment點菜界面 3.

    2024年02月05日
    瀏覽(15)
  • 安卓開發(fā) | 將Vue項目打包為app

    安卓開發(fā) | 將Vue項目打包為app

    大家好!我是初心,很高興再次和大家見面。 今天跟大家分享的文章是 如何將Vue項目打包成apk,即安卓安裝包 ,希望能幫助到大家!本篇文章收錄于 初心 的 安卓開發(fā) 專欄。 ?? 個人主頁:初心%個人主頁 ?? 個人簡介:大家好,我是初心,和大家共同努力 ?? 歡迎大家:

    2024年02月05日
    瀏覽(20)
  • uniapp項目APP端安卓ios權限檢測教程

    導語:在 APP 的日常開發(fā)過程中,權限檢測與授權是不可避免的一項重要的功能,下面就簡單介紹一下如何檢測和授權的方法。 原理 方法 實戰(zhàn) 此授權方法主要是依托于 HTML5 產業(yè)聯盟的 HTML5+ 規(guī)范實現的。 HTML5 產業(yè)聯盟官網 獲取當前操作系統(tǒng)名稱 可以使用 uni.getSystemInfoSyn

    2024年02月07日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包