Функция colorResource
Функция colorResource возвращает
Color Compose
по id из res/values/colors.xml,
например R.color.brand.
Учитывает тёмную тему, если цвет
переопределён в res/values-night/colors.xml.
Вне Compose цвет берут через
getColor.
Синтаксис
val brand = colorResource(R.color.brand)
Параметры
| Параметр | Описание |
|---|---|
id |
Идентификатор цвета R.color.
из XML ресурсов.
|
Пример
Давайте покрасим текст цветом brand:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
import androidx.compose.ui.res.colorResource
import com.example.app.R
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(
text = "abcde",
color = colorResource(R.color.brand),
)
}
}
}
На экране строка "abcde"
будет цвета brand из colors.xml.
Пример
Давайте сравним brand с другим ресурсом:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Column
import androidx.compose.material3.Text
import androidx.compose.ui.res.colorResource
import com.example.app.R
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Column {
Text(
text = "abcde",
color = colorResource(R.color.brand),
)
Text(
text = "12345",
color = colorResource(R.color.brand),
)
}
}
}
}
На экране обе строки окрасятся
одним цветом из ресурса brand.
Смотрите также
-
метод
getColor,
аналог для Context и Resources -
функция
stringResource,
которая читает строки из values -
класс
Color,
тип, который возвращает colorResource -
метод
setTint,
которым красят drawable другим способом