春节主题:首页弹窗、礼物、部分按钮。

This commit is contained in:
2026-01-28 16:17:06 +08:00
parent 88ce0205fb
commit 7aa294c3a9
53 changed files with 223 additions and 60 deletions

View File

@@ -5,6 +5,9 @@ import android.graphics.Color;
import androidx.annotation.ColorInt;
import androidx.annotation.Nullable;
import com.blankj.utilcode.util.ActivityUtils;
import com.xscm.moduleutil.R;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -69,7 +72,7 @@ public class ColorManager {
// 解析颜色为int值
public int getPrimaryColorInt() {
try {
return Color.parseColor(primaryColor);
return UtilConfig.getAttrColor(ActivityUtils.getTopActivity(), R.attr.app_color_colorPrimary);//Color.parseColor(primaryColor);
} catch (Exception e) {
return Color.parseColor("#3ABC6D"); // 默认颜色
}

View File

@@ -1,6 +1,8 @@
package com.xscm.moduleutil.utils;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import com.lahm.library.EasyProtectorLib;
import com.lahm.library.EmulatorCheckCallback;
@@ -50,4 +52,31 @@ public class UtilConfig {
public static void setSalt(String salt) {
UtilConfig.salt = salt;
}
public static int getAttBg(Context context, int attr){
// 1. 定义需要获取的自定义属性数组
int[] attrs = new int[]{attr};
// 2. 从Context的Theme中获取TypedArray核心绑定当前主题的属性值
TypedArray ta = context.obtainStyledAttributes(attrs);
// 3. 获取attr对应的资源ID默认值0无有效资源时返回0
int bgResId = ta.getResourceId(0, 0);
// 4. 关键手动回收TypedArray释放系统资源避免内存泄漏
ta.recycle();
// 5. 有有效资源ID时设置背景
return bgResId;
}
// 新增:解析自定义颜色属性,返回实际颜色码(核心)
public static int getAttrColor(Context context, int colorAttrId) {
if (context == null) {
return Color.BLACK; // 上下文为空时返回默认黑色,可自定义
}
// 从主题中获取TypedArray解析颜色属性
TypedArray ta = context.obtainStyledAttributes(new int[]{colorAttrId});
// getColor(索引, 默认颜色)直接返回十六进制颜色码适配setTextColor
int color = ta.getColor(0, Color.BLACK);
ta.recycle(); // 必须回收,避免内存泄漏
return color;
}
}

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- <solid android:color="#E3F2FD" />-->
<gradient
android:angle="90"
android:endColor="#FBFBFF"
android:startColor="#EBFFED"
android:type="linear"
android:useLevel="true" />
<stroke
android:width="1dp"
android:color="#56E449" />
<corners android:radius="8dp" />
</shape>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- <solid android:color="#E3F2FD" />-->
<gradient
android:angle="90"
android:endColor="#FFFBFBFF"
android:startColor="#FFFFEBEB"
android:type="linear"
android:useLevel="true" />
<stroke
android:width="1dp"
android:color="#FFFF7676" />
<corners android:radius="8dp" />
</shape>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="1dp" android:color="@color/colorPrimary" />
<stroke android:width="1dp" android:color="?attr/app_color_colorPrimary" />
<solid android:color="#ffeff2f8" />
<corners android:topLeftRadius="65dp" android:topRightRadius="65dp" android:bottomLeftRadius="65dp" android:bottomRightRadius="65dp" />
</shape>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="1dp" android:color="@color/colorPrimary_spring" />
<solid android:color="#ffeff2f8" />
<corners android:topLeftRadius="65dp" android:topRightRadius="65dp" android:bottomLeftRadius="65dp" android:bottomRightRadius="65dp" />
</shape>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="90"
android:endColor="#FFA50C1D"
android:startColor="#FF3F0001"
android:type="linear"
android:useLevel="true" />
<corners
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="14dp"
android:topRightRadius="14dp" />
</shape>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="180"
android:endColor="#ff093a1f"
android:startColor="#176D33"
android:type="linear"
android:useLevel="true" />
<corners
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="14dp"
android:topRightRadius="14dp" />
</shape>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="90"
android:endColor="#FF68050C"
android:startColor="#FF3F0001"
android:type="linear"
android:useLevel="true" />
<corners
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="14dp"
android:topRightRadius="14dp" />
</shape>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="1dp" android:color="#8865FF" />
<stroke android:width="1dp" android:color="?attr/app_color_colorPrimary" />
<corners android:topLeftRadius="79dp" android:topRightRadius="79dp" android:bottomLeftRadius="79dp" android:bottomRightRadius="79dp" />
</shape>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="@color/colorPrimary" />
<stroke android:width="2dp" android:color="?attr/app_color_colorPrimary" />
<corners android:topLeftRadius="70dp" android:topRightRadius="70dp" android:bottomLeftRadius="70dp" android:bottomRightRadius="70dp" />
</shape>

View File

@@ -16,7 +16,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@mipmap/h_bj_b"
android:src="?attr/app_main_dialog_refill_bg_line"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -26,7 +26,7 @@
android:id="@+id/rl_t"
android:layout_width="@dimen/dp_276"
android:layout_height="@dimen/dp_350"
android:background="@mipmap/frb_bg"
android:background="?attr/app_main_dialog_refill_bg_first"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -16,7 +16,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@mipmap/h_bj_b"
android:src="?attr/app_main_dialog_refill_bg_line"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -26,7 +26,7 @@
android:id="@+id/rl_t"
android:layout_width="@dimen/dp_276"
android:layout_height="@dimen/dp_365"
android:background="@mipmap/heaven_bj"
android:background="?attr/app_main_dialog_refill_bg_day"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -16,7 +16,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@mipmap/h_bj_b"
android:src="?attr/app_main_dialog_refill_bg_line"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -26,7 +26,7 @@
android:id="@+id/rl_t"
android:layout_width="@dimen/dp_276"
android:layout_height="@dimen/dp_338"
android:background="@mipmap/new_people_bj"
android:background="?attr/app_main_dialog_refill_bg_new"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -17,7 +17,7 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="fitXY"
android:src="@mipmap/index_youth"
android:src="?attr/app_index_youth_bg"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="300:375"
app:layout_constraintEnd_toEndOf="parent"
@@ -77,6 +77,7 @@
android:background="@drawable/cs"
android:gravity="center"
android:text="开启青少年模式"
android:backgroundTint="?attr/app_color_colorPrimary"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_16"
android:textStyle="bold"

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 379 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 564 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 KiB

View File

@@ -16,9 +16,27 @@
<attr name="app_main_tab_text_color" format="reference"/>
<attr name="app_main_tab_bg" format="reference"/>
<attr name="app_invite_bg" format="reference"/>
<attr name="app_index_youth_bg" format="reference"/>
<attr name="app_main_dialog_refill_bg_line" format="reference"/>
<attr name="app_main_dialog_refill_bg_new" format="reference"/>
<attr name="app_main_dialog_refill_bg_day" format="reference"/>
<attr name="app_main_dialog_refill_bg_first" format="reference"/>
<attr name="app_user_bg_color" format="color"/>
<attr name="app_user_edit_me" format="reference"/>
<attr name="app_tab_mark" format="reference"/>
<attr name="app_select_item" format="reference"/>
<attr name="app_bottom_dialog_bg" format="reference"/>
<attr name="app_bottom_dialog_send_gift_bg" format="reference"/>
<declare-styleable name="ExplainView">
<attr name="ev_title" />
<attr name="ev_hint" format="string" />

View File

@@ -43,11 +43,35 @@
<item name="app_main_tab_2">@drawable/main_bottom_bar_icon_media</item>
<item name="app_main_tab_3">@drawable/main_bottom_bar_icon_news</item>
<item name="app_main_tab_4">@drawable/main_bottom_bar_icon_tend</item>
<item name="app_main_tab_text_color">@drawable/text_color_two</item>
<item name="app_main_tab_bg">@drawable/home_bbar_xz</item>
<item name="app_invite_bg">@mipmap/invite_bj</item>
<item name="app_index_youth_bg">@mipmap/index_youth</item>
<item name="app_main_dialog_refill_bg_line">@mipmap/h_bj_b</item>
<item name="app_main_dialog_refill_bg_first">@mipmap/frb_bg</item>
<item name="app_main_dialog_refill_bg_new">@mipmap/new_people_bj</item>
<item name="app_main_dialog_refill_bg_day">@mipmap/heaven_bj</item>
<item name="app_user_bg_color">#231F2C</item>
<item name="app_user_edit_me">@mipmap/me_edit</item>
<item name="app_tab_mark">@mipmap/tab_x</item>
<item name="app_select_item">@drawable/bg_item_selected</item>
<item name="app_bottom_dialog_bg">@drawable/dialog_user_info_bg</item>
<item name="app_bottom_dialog_send_gift_bg">@drawable/bg_room_gift</item>
</style>
<!-- 子主题:元旦主题 -->
@@ -65,9 +89,25 @@
<item name="app_main_tab_text_color">@drawable/text_color_two</item>
<item name="app_main_tab_bg">@drawable/home_bbar_xz</item>
<item name="app_invite_bg">@mipmap/invite_bj</item>
<item name="app_index_youth_bg">@mipmap/index_youth</item>
<item name="app_main_dialog_refill_bg_line">@mipmap/h_bj_b</item>
<item name="app_main_dialog_refill_bg_first">@mipmap/frb_bg</item>
<item name="app_main_dialog_refill_bg_new">@mipmap/new_people_bj</item>
<item name="app_main_dialog_refill_bg_day">@mipmap/heaven_bj</item>
<item name="app_user_bg_color">#231F2C</item>
<item name="app_user_edit_me">@mipmap/me_edit</item>
<item name="app_tab_mark">@mipmap/tab_x</item>
<item name="app_select_item">@drawable/bg_item_selected</item>
<item name="app_bottom_dialog_bg">@drawable/dialog_user_info_bg</item>
<item name="app_bottom_dialog_send_gift_bg">@drawable/bg_room_gift</item>
</style>
@@ -86,9 +126,27 @@
<item name="app_main_tab_text_color">@drawable/text_color_spring</item>
<item name="app_main_tab_bg">@mipmap/icon_main_tab_bg</item>
<item name="app_user_bg_color">#FF600D00</item>
<item name="app_invite_bg">@mipmap/icon_invite_spring</item>
<item name="app_index_youth_bg">@mipmap/icon_spring_index_youth</item>
<item name="app_main_dialog_refill_bg_line">@mipmap/icon_spring_h_bj_b</item>
<item name="app_main_dialog_refill_bg_first">@mipmap/icon_spring_frb_bg</item>
<item name="app_main_dialog_refill_bg_new">@mipmap/icon_spring_new_people_bj</item>
<item name="app_main_dialog_refill_bg_day">@mipmap/icon_spring_heaven_bj</item>
<item name="app_user_bg_color">#FF600D00</item>
<item name="app_user_edit_me">@mipmap/icon_spring_edit_me</item>
<item name="app_tab_mark">@mipmap/icon_bg_tab_line</item>
<item name="app_select_item">@drawable/bg_item_spring_selected</item>
<item name="app_bottom_dialog_bg">@drawable/dialog_user_info_spring_bg</item>
<item name="app_bottom_dialog_send_gift_bg">@drawable/dialog_user_info_spring_bg</item>
</style>