Функция darkColorScheme
Функция darkColorScheme
возвращает
ColorScheme
для тёмного интерфейса.
Параметры те же, что у
lightColorScheme:
primary, onPrimary, background, surface.
Функция только создаёт объект цветов,
экран рисуют внутри
MaterialTheme.
Синтаксис
val scheme = darkColorScheme(
primary = Color(0xFFBB86FC),
background = Color(0xFF121212),
)
Параметры
| Параметр | Описание |
|---|---|
primary |
Акцент на тёмном фоне. Тип -
Color.
|
onPrimary |
Контрастный цвет поверх primary. |
background |
Общий фон экрана в тёмной теме. |
surface |
Фон панелей и карточек чуть светлее background. |
Пример
Давайте обернём экран в тёмную схему по умолчанию:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.darkColorScheme
import androidx.compose.ui.Modifier
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme(colorScheme = darkColorScheme()) {
Box(
modifier = Modifier
.fillMaxSize()
.background(MaterialTheme.colorScheme.background),
) {
Text(text = "abcde")
}
}
}
}
}
На экране фон станет тёмным,
текст "abcde" - светлым из темы.
Пример
Давайте зададим свой primary на тёмном surface:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.darkColorScheme
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val scheme = darkColorScheme(
primary = Color(0xFF80CBC4),
onPrimary = Color.Black,
surface = Color(0xFF1E1E1E),
)
MaterialTheme(colorScheme = scheme) {
Box(
modifier = Modifier
.fillMaxSize()
.background(MaterialTheme.colorScheme.surface),
) {
Text(
text = "12345",
color = MaterialTheme.colorScheme.primary,
)
}
}
}
}
}
На экране фон будет тёмно-серым,
текст "12345" - бирюзовым primary.
Смотрите также
-
функция
lightColorScheme,
которая собирает светлую палитру -
функция
dynamicDarkColorScheme,
которая берёт цвета обоев на Android 12 -
функция
MaterialTheme,
которая применяет colorScheme к экрану -
метод
copy,
который меняет отдельные цвета схемы