logo小熊博客
首页 代码速查表 fk标记语言示例 登录
目录
签到功能部分代码

1.首先创建弹窗

private void showqiandao() {
        LayoutInflater inflater  = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        View           popupView = inflater.inflate(R.layout.qiandao, null);

        float density    = getResources().getDisplayMetrics().density;
        int   widthInPx  = Math.round(500 * density);
        int   heightInPx = Math.round(350 * density);

        final PopupWindow popupWindow = new PopupWindow(popupView, widthInPx, heightInPx, true);
        popupWindow.setOutsideTouchable(true);
        popupWindow.setFocusable(true);

        View parentView = findViewById(android.R.id.content);
        popupWindow.showAtLocation(parentView, Gravity.CENTER, 0, 0);

        int currentDayOfWeek = getCurrentDayOfWeek();

        // 设置当天的"guang"视图的可见性
        setGuangVisibility(popupView, currentDayOfWeek);

        ImageView   zhezhao = popupView.findViewById(getResources().getIdentifier("zhezhao" + currentDayOfWeek, "id", getPackageName()));  //遮罩层
        ImageView   duigou  = popupView.findViewById(getResources().getIdentifier("duigou" + currentDayOfWeek, "id", getPackageName()));   //领取成功后的图片
        FrameLayout qiandao = popupView.findViewById(getResources().getIdentifier("qiandao" + currentDayOfWeek, "id", getPackageName()));  //奖品主体

        qiandao.setOnClickListener(v -> handleQiandao(currentDayOfWeek, zhezhao, duigou, popupWindow, popupView));
        loadQiandaoState(popupView);

        ImageView closeButton = popupView.findViewById(R.id.back);
        closeButton.setOnClickListener(v -> popupWindow.dismiss());
    }

2.判断当天是否已经签到

private void handleQiandao(int dayOfWeek, ImageView zhezhao, ImageView duigou, PopupWindow popupWindow, View popupView) {
        String savedDay = sharedPreferences.getString(PREF_SIGNED_DAY, "");

        if (savedDay.equals(String.valueOf(dayOfWeek))) {
            Toast.makeText(this, "今天已经签到过了!", Toast.LENGTH_SHORT).show();
        } else {
            SharedPreferences.Editor editor = sharedPreferences.edit();
            editor.putString(PREF_SIGNED_DAY, String.valueOf(dayOfWeek));
            editor.apply();

            zhezhao.setVisibility(View.VISIBLE);
            duigou.setVisibility(View.VISIBLE);

            int coins = (dayOfWeek == 7) ? 10000 : 500; // Sunday gets 10000 coins, otherwise 500 coins
            addCoinsDisplay(coins);

            popupWindow.dismiss();  //签到成功后关闭弹窗

            showGameCoinDialog(coins);   //显示领取动画
        }
    }

3.如果已经签到就显示遮罩层,没有签到就显示签到

private void loadQiandaoState(View popupView) {
        String savedDay         = sharedPreferences.getString(PREF_SIGNED_DAY, "");
        int    currentDayOfWeek = getCurrentDayOfWeek();

        for (int day = 1; day <= 7; day++) {
            int zhezhaoId = getResources().getIdentifier("zhezhao" + day, "id", getPackageName());
            int duigouId  = getResources().getIdentifier("duigou" + day, "id", getPackageName());
            int guangId   = getResources().getIdentifier("guang" + day, "id", getPackageName());

            ImageView zhezhao = popupView.findViewById(zhezhaoId);
            ImageView duigou  = popupView.findViewById(duigouId);
            ImageView guang   = popupView.findViewById(guangId);

            if (String.valueOf(day).equals(savedDay) && day == currentDayOfWeek) {
                zhezhao.setVisibility(View.VISIBLE);
                duigou.setVisibility(View.VISIBLE);
                guang.setVisibility(View.GONE);
            } else {
                zhezhao.setVisibility(View.GONE);
                duigou.setVisibility(View.GONE);
            }
        }
    }

4.根据实际日期判断该点击哪个

private void setGuangVisibility(View popupView, int dayOfWeek) {
        for (int i = 1; i <= 7; i++) {
            int  guangId = getResources().getIdentifier("guang" + i, "id", getPackageName());
            View guang   = popupView.findViewById(guangId);
            if (guang != null) {
                guang.setVisibility(i == dayOfWeek ? View.VISIBLE : View.GONE);
            }
        }
    }

5.获取当前日期

private int getCurrentDayOfWeek() {
        Calendar calendar  = Calendar.getInstance();
        int      dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);

        if (dayOfWeek == Calendar.SUNDAY) {
            return 7;
        } else {
            return dayOfWeek - 1;
        }
    }

6.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:id="@+id/main_lin"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg_pop_l2x"
    android:orientation="vertical"
    android:paddingLeft="10dp"
    android:paddingRight="10dp">

    <!--顶部按钮-->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="10dp"
        android:layout_weight="1">

        <FrameLayout
            android:id="@+id/four"
            android:layout_width="160dp"
            android:layout_height="40dp"
            android:layout_centerInParent="true"
            android:background="@drawable/dailybonus2x" />

        <ImageView
            android:id="@+id/back"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:background="@drawable/ic_xx2x" />

    </RelativeLayout>

    <!--中间排行榜-->
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_marginBottom="15dp"
        android:layout_weight="6"
        android:background="@drawable/bg_qiandao_main"
        android:orientation="vertical"
        android:paddingLeft="10dp"
        android:paddingTop="15dp">

        <!--        上面三个-->
        <FrameLayout
            android:id="@+id/qiandao1"
            android:layout_width="100dp"
            android:layout_height="120dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <RelativeLayout
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:background="@drawable/bg_day12x">

                <ImageView
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:layout_alignTop="@+id/day1"
                    android:layout_toLeftOf="@+id/day1"
                    android:src="@drawable/ic_jiaojiao2x" />

                <TextView
                    android:id="@+id/day1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Day 1"
                    android:textColor="@color/white"
                    android:textStyle="bold" />

                <ImageView
                    android:id="@+id/icon_money"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_centerInParent="true"
                    android:background="@drawable/ic_coin_12x" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/icon_money"
                    android:layout_centerHorizontal="true"
                    android:text="500"
                    android:textColor="@color/money_color"
                    android:textSize="25sp"
                    android:textStyle="bold" />

            </RelativeLayout>

            <ImageView
                android:id="@+id/zhezhao1"
                android:layout_width="100dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:background="@drawable/zhezhao2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/duigou1"
                android:layout_width="80dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:scaleType="centerInside"
                android:src="@drawable/ic_duigou2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/guang1"
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:layout_gravity="center"
                android:background="@drawable/bk_huang2x"
                android:scaleType="centerInside"
                android:visibility="gone" />
        </FrameLayout>

        <FrameLayout
            android:id="@+id/qiandao2"
            android:layout_width="100dp"
            android:layout_height="120dp"
            android:layout_marginLeft="10dp"
            app:layout_constraintStart_toEndOf="@id/qiandao1"
            app:layout_constraintTop_toTopOf="@id/qiandao1">

            <RelativeLayout
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:background="@drawable/bg_day12x">

                <ImageView
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:layout_alignTop="@+id/day2"
                    android:layout_toLeftOf="@+id/day2"
                    android:src="@drawable/ic_jiaojiao2x" />

                <TextView
                    android:id="@+id/day2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Day 2"
                    android:textColor="@color/white"
                    android:textStyle="bold" />

                <ImageView
                    android:id="@+id/icon_money2"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_centerInParent="true"
                    android:background="@drawable/ic_coin_12x" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/icon_money2"
                    android:layout_centerHorizontal="true"
                    android:text="500"
                    android:textColor="@color/money_color"
                    android:textSize="25sp"
                    android:textStyle="bold" />

            </RelativeLayout>

            <ImageView
                android:id="@+id/zhezhao2"
                android:layout_width="100dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:background="@drawable/zhezhao2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/duigou2"
                android:layout_width="80dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:scaleType="centerInside"
                android:src="@drawable/ic_duigou2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/guang2"
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:layout_gravity="center"
                android:background="@drawable/bk_huang2x"
                android:scaleType="centerInside"
                android:visibility="gone" />
        </FrameLayout>

        <FrameLayout
            android:id="@+id/qiandao3"
            android:layout_width="100dp"
            android:layout_height="120dp"
            android:layout_marginLeft="10dp"
            app:layout_constraintStart_toEndOf="@id/qiandao2"
            app:layout_constraintTop_toTopOf="@id/qiandao1">

            <RelativeLayout
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:background="@drawable/bg_day12x">

                <ImageView
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:layout_alignTop="@+id/day3"
                    android:layout_toLeftOf="@+id/day3"
                    android:src="@drawable/ic_jiaojiao2x" />

                <TextView
                    android:id="@+id/day3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Day 3"
                    android:textColor="@color/white"
                    android:textStyle="bold" />

                <ImageView
                    android:id="@+id/icon_money3"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_centerInParent="true"
                    android:background="@drawable/ic_coin_12x" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/icon_money3"
                    android:layout_centerHorizontal="true"
                    android:text="500"
                    android:textColor="@color/money_color"
                    android:textSize="25sp"
                    android:textStyle="bold" />

            </RelativeLayout>

            <ImageView
                android:id="@+id/zhezhao3"
                android:layout_width="100dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:background="@drawable/zhezhao2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/duigou3"
                android:layout_width="80dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:scaleType="centerInside"
                android:src="@drawable/ic_duigou2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/guang3"
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:layout_gravity="center"
                android:background="@drawable/bk_huang2x"
                android:scaleType="centerInside"
                android:visibility="gone" />
        </FrameLayout>

        <!--        下面三个-->

        <FrameLayout
            android:id="@+id/qiandao4"
            android:layout_width="100dp"
            android:layout_height="120dp"
            android:layout_marginTop="10dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/qiandao1">

            <RelativeLayout
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:background="@drawable/bg_day12x">

                <ImageView
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:layout_alignTop="@+id/day4"
                    android:layout_toLeftOf="@+id/day4"
                    android:src="@drawable/ic_jiaojiao2x" />

                <TextView
                    android:id="@+id/day4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Day 4"
                    android:textColor="@color/white"
                    android:textStyle="bold" />

                <ImageView
                    android:id="@+id/icon_money4"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_centerInParent="true"
                    android:background="@drawable/ic_coin_22x" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/icon_money4"
                    android:layout_centerHorizontal="true"
                    android:text="500"
                    android:textColor="@color/money_color"
                    android:textSize="25sp"
                    android:textStyle="bold" />

            </RelativeLayout>

            <ImageView
                android:id="@+id/zhezhao4"
                android:layout_width="100dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:background="@drawable/zhezhao2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/duigou4"
                android:layout_width="80dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:scaleType="centerInside"
                android:src="@drawable/ic_duigou2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/guang4"
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:layout_gravity="center"
                android:background="@drawable/bk_huang2x"
                android:scaleType="centerInside"
                android:visibility="gone" />
        </FrameLayout>

        <FrameLayout
            android:id="@+id/qiandao5"
            android:layout_width="100dp"
            android:layout_height="120dp"
            android:layout_marginLeft="10dp"
            app:layout_constraintStart_toEndOf="@id/qiandao4"
            app:layout_constraintTop_toBottomOf="@id/qiandao2"
            app:layout_constraintTop_toTopOf="@+id/qiandao4">

            <RelativeLayout
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:background="@drawable/bg_day12x">

                <ImageView
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:layout_alignTop="@+id/day5"
                    android:layout_toLeftOf="@+id/day5"
                    android:src="@drawable/ic_jiaojiao2x" />

                <TextView
                    android:id="@+id/day5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Day 5"
                    android:textColor="@color/white"
                    android:textStyle="bold" />

                <ImageView
                    android:id="@+id/icon_money5"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_centerInParent="true"
                    android:background="@drawable/ic_coin_22x" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/icon_money5"
                    android:layout_centerHorizontal="true"
                    android:text="500"
                    android:textColor="@color/money_color"
                    android:textSize="25sp"
                    android:textStyle="bold" />

            </RelativeLayout>

            <ImageView
                android:id="@+id/zhezhao5"
                android:layout_width="100dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:background="@drawable/zhezhao2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/duigou5"
                android:layout_width="80dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:scaleType="centerInside"
                android:src="@drawable/ic_duigou2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/guang5"
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:layout_gravity="center"
                android:background="@drawable/bk_huang2x"
                android:scaleType="centerInside"
                android:visibility="gone" />
        </FrameLayout>

        <FrameLayout
            android:id="@+id/qiandao6"
            android:layout_width="100dp"
            android:layout_height="120dp"
            android:layout_marginLeft="10dp"
            app:layout_constraintStart_toEndOf="@id/qiandao5"
            app:layout_constraintTop_toTopOf="@id/qiandao4">

            <RelativeLayout
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:background="@drawable/bg_day12x">

                <ImageView
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:layout_alignTop="@+id/day6"
                    android:layout_toLeftOf="@+id/day6"
                    android:src="@drawable/ic_jiaojiao2x" />

                <TextView
                    android:id="@+id/day6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Day 6"
                    android:textColor="@color/white"
                    android:textStyle="bold" />

                <ImageView
                    android:id="@+id/icon_money6"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_centerInParent="true"
                    android:background="@drawable/ic_coin_22x" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/icon_money6"
                    android:layout_centerHorizontal="true"
                    android:text="500"
                    android:textColor="@color/money_color"
                    android:textSize="25sp"
                    android:textStyle="bold" />

            </RelativeLayout>

            <ImageView
                android:id="@+id/zhezhao6"
                android:layout_width="100dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:background="@drawable/zhezhao2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/duigou6"
                android:layout_width="80dp"
                android:layout_height="115dp"
                android:layout_gravity="center"
                android:scaleType="centerInside"
                android:src="@drawable/ic_duigou2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/guang6"
                android:layout_width="100dp"
                android:layout_height="120dp"
                android:layout_gravity="center"
                android:background="@drawable/bk_huang2x"
                android:scaleType="centerInside"
                android:visibility="gone" />
        </FrameLayout>

        <!--        第七天-->
        <FrameLayout
            android:id="@+id/qiandao7"
            android:layout_width="100dp"
            android:layout_height="250dp"
            android:layout_marginLeft="10dp"
            app:layout_constraintStart_toEndOf="@id/qiandao3"
            app:layout_constraintTop_toTopOf="parent">

            <RelativeLayout
                android:layout_width="100dp"
                android:layout_height="250dp"
                android:background="@drawable/bg_day72x">

                <ImageView
                    android:layout_width="20dp"
                    android:layout_height="20dp"
                    android:layout_alignTop="@+id/day7"
                    android:layout_toLeftOf="@+id/day7"
                    android:src="@drawable/ic_jiaojiao2x" />

                <TextView
                    android:id="@+id/day7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="5dp"
                    android:text="Day 7"
                    android:textColor="@color/white"
                    android:textStyle="bold" />

                <ImageView
                    android:id="@+id/icon_money7"
                    android:layout_width="80dp"
                    android:layout_height="80dp"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="50dp"
                    android:background="@drawable/ic_coin_32x" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/icon_money7"
                    android:layout_centerHorizontal="true"
                    android:layout_marginTop="10dp"
                    android:text="10,000"
                    android:textColor="@color/money_color"
                    android:textSize="25sp"
                    android:textStyle="bold" />

            </RelativeLayout>

            <ImageView
                android:id="@+id/zhezhao7"
                android:layout_width="100dp"
                android:layout_height="246dp"
                android:layout_gravity="center"
                android:background="@drawable/zhezhao2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/duigou7"
                android:layout_width="80dp"
                android:layout_height="245dp"
                android:layout_gravity="center"
                android:scaleType="centerInside"
                android:src="@drawable/ic_duigou2x"
                android:visibility="gone" />

            <ImageView
                android:id="@+id/guang7"
                android:layout_width="100dp"
                android:layout_height="250dp"
                android:layout_gravity="center"
                android:background="@drawable/bk_huang2x"
                android:scaleType="centerInside"
                android:visibility="gone" />
        </FrameLayout>

    </androidx.constraintlayout.widget.ConstraintLayout>

</LinearLayout>
上一篇:ubuntu安装git、提交代码
下一篇:PopupWindow 显示问题
请我喝奶茶!
赞赏码
手机扫码访问
手机访问