From bbb701f583a2eaee509d23c1e2be7f09d31cb27d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E5=9C=A8=E5=9D=A4?= Date: Sat, 17 Jan 2026 19:34:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BA=94=E7=94=A8=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E5=92=8C=E9=A2=9C=E8=89=B2=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/huaga/life_echo/ui/theme/Color.kt | 28 +++---- .../com/huaga/life_echo/ui/theme/Theme.kt | 73 +++++++++++++------ 2 files changed, 65 insertions(+), 36 deletions(-) diff --git a/app-android/app/src/main/java/com/huaga/life_echo/ui/theme/Color.kt b/app-android/app/src/main/java/com/huaga/life_echo/ui/theme/Color.kt index 5d45c9d..74c0d57 100644 --- a/app-android/app/src/main/java/com/huaga/life_echo/ui/theme/Color.kt +++ b/app-android/app/src/main/java/com/huaga/life_echo/ui/theme/Color.kt @@ -2,21 +2,23 @@ package com.huaga.life_echo.ui.theme import androidx.compose.ui.graphics.Color -// New color scheme based on design -val DeepPurple = Color(0xFF200028) -val SlatePurple = Color(0xFF8C8EA3) -val MediumPurple = Color(0xFFA177A6) -val Lavender = Color(0xFFCEB0DA) -val Blush = Color(0xFFDBBABA) -val Cream = Color(0xFFFAF7F8) +// 浅紫色配色方案 - 基于UI样例图 +val LightPurple = Color(0xFFB18FCE) // 主要浅紫色,用于标题栏和强调元素 +val LightPurpleAlt = Color(0xFFC8A2C8) // 替代浅紫色 +val DeepPurple = Color(0xFF6B4C93) // 深紫色,用于标题和选中状态 +val LightPurpleBackground = Color(0xFFF5F0F8) // 浅紫色背景 val White = Color(0xFFFFFFFF) +val LightGray = Color(0xFFE0E0E0) // 浅灰色,用于未选中状态 +val DarkGray = Color(0xFF424242) // 深灰色,用于主要文字 +val MediumGray = Color(0xFF9E9E9E) // 中等灰色,用于辅助文字 +val LightGrayText = Color(0xFFBDBDBD) // 浅灰色文字 // For dark theme -val Purple80 = Lavender -val PurpleGrey80 = SlatePurple -val Pink80 = Blush +val Purple80 = LightPurple +val PurpleGrey80 = MediumGray +val Pink80 = LightPurpleAlt // For light theme -val Purple40 = MediumPurple -val PurpleGrey40 = SlatePurple -val Pink40 = Blush \ No newline at end of file +val Purple40 = DeepPurple +val PurpleGrey40 = MediumGray +val Pink40 = LightPurple \ No newline at end of file diff --git a/app-android/app/src/main/java/com/huaga/life_echo/ui/theme/Theme.kt b/app-android/app/src/main/java/com/huaga/life_echo/ui/theme/Theme.kt index 20fa39b..6733511 100644 --- a/app-android/app/src/main/java/com/huaga/life_echo/ui/theme/Theme.kt +++ b/app-android/app/src/main/java/com/huaga/life_echo/ui/theme/Theme.kt @@ -9,53 +9,80 @@ import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.getValue import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.unit.sp +import com.huaga.life_echo.ui.settings.AppSettings private val DarkColorScheme = darkColorScheme( - primary = Lavender, - secondary = SlatePurple, - tertiary = Blush, - background = DeepPurple, - surface = DeepPurple, - onPrimary = DeepPurple, + primary = LightPurple, // 保持浅紫色主色不变 + secondary = LightPurpleAlt, + tertiary = LightPurple, + background = Color(0xFF000000), // 黑色背景 + surface = Color(0xFF000000), // 黑色表面 + onPrimary = White, onSecondary = White, - onTertiary = DeepPurple, - onBackground = White, - onSurface = White + onTertiary = White, + onBackground = White, // 白色文字在黑色背景上 + onSurface = White // 白色文字在黑色表面上 ) private val LightColorScheme = lightColorScheme( - primary = MediumPurple, - secondary = SlatePurple, - tertiary = Blush, - background = Cream, + primary = LightPurple, // 浅紫色作为主色 + secondary = LightPurpleAlt, + tertiary = LightPurple, + background = White, // 白色背景 surface = White, - onPrimary = White, - onSecondary = DeepPurple, - onTertiary = DeepPurple, - onBackground = DeepPurple, - onSurface = DeepPurple + onPrimary = White, // 白色文字在紫色背景上 + onSecondary = White, + onTertiary = White, + onBackground = DarkGray, // 深灰色文字在白色背景上 + onSurface = DarkGray ) @Composable fun LifeechoTheme( - darkTheme: Boolean = isSystemInDarkTheme(), + darkTheme: Boolean? = null, // 如果为null,则使用AppSettings中的值 // Dynamic color is available on Android 12+ - dynamicColor: Boolean = true, + dynamicColor: Boolean = false, // 禁用动态颜色以保持浅紫色主题 content: @Composable () -> Unit ) { + // 使用AppSettings中的状态,这样当设置变化时会触发重组 + val isDarkMode = darkTheme ?: AppSettings.rememberDarkMode() + val isLargeFont = AppSettings.rememberLargeFontMode() + val colorScheme = when { dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { val context = LocalContext.current - if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + if (isDarkMode) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) } - darkTheme -> DarkColorScheme + isDarkMode -> DarkColorScheme else -> LightColorScheme } + + // 根据大字模式调整字体大小 + val adjustedTypography = if (isLargeFont) { + Typography.copy( + bodyLarge = Typography.bodyLarge.copy(fontSize = 18.sp), + bodyMedium = Typography.bodyMedium.copy(fontSize = 16.sp), + bodySmall = Typography.bodySmall.copy(fontSize = 14.sp), + titleLarge = Typography.titleLarge.copy(fontSize = 24.sp), + titleMedium = Typography.titleMedium.copy(fontSize = 20.sp), + titleSmall = Typography.titleSmall.copy(fontSize = 18.sp), + headlineLarge = Typography.headlineLarge.copy(fontSize = 32.sp), + headlineMedium = Typography.headlineMedium.copy(fontSize = 28.sp), + headlineSmall = Typography.headlineSmall.copy(fontSize = 24.sp) + ) + } else { + Typography + } MaterialTheme( colorScheme = colorScheme, - typography = Typography, + typography = adjustedTypography, content = content ) } \ No newline at end of file