Ресурсы Color

Последнее обновление: 04.04.2024

Ресурсы Color хранят определения цветов. Они должны храниться в проекте в каталоге res/values и также, как и ресурсы строк, заключены в тег <resources>. Так, по умолчанию при создании самого простого проекта в папку res/values добавляется файл colors.xml:

Ресурсы Color в Android Studio в Kotlin и Jetpack Compose

По умолчанию он имеет следующее определение:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="purple_200">#FFBB86FC</color>
    <color name="purple_500">#FF6200EE</color>
    <color name="purple_700">#FF3700B3</color>
    <color name="teal_200">#FF03DAC5</color>
    <color name="teal_700">#FF018786</color>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>
</resources>

Цвет определяется с помощью элемента <color>. Его атрибут name устанавливает название цвета, которое будет использоваться в приложении, а шестнадцатеричное число - значение цвета.

Для задания цветовых ресурсов можно использовать следующие форматы:

  • #RGB (#F00 - 12-битное значение)

  • #ARGB (#8F00 - 12-битное значение с добавлением альфа-канала)

  • #RRGGBB (#FF00FF - 24-битное значение)

  • #AARRGGBB (#80FF00FF - 24-битное значение с добавлением альфа-канала)

Чтобы не трогать и не портить данный файл, определим свой новый файл ресурсов и для этого добавим в папку res/values новый файл ресурсов, который назовем my_colors.xml.

Использование цвета в Android Studio и Jetpack Compose и ресурсы color

Изменим файл my_colors.xml, добавив в него пару цветов:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="textViewBackColor">#A0EAE1</color>
    <color name="textViewFontColor">#00695C</color>
</resources>

В файлах кода мы можем ссылаться на эти ресурсы через их идентификатор, который имеет следующий вид:

R.color.название_ресурса

Например, обращение к ресурсу textViewBackColor:

R.color.textViewBackColor

Чтобы получить ресурс color в коде Kotlin, применяется встроенная функция androidx.compose.ui.res. colorResource(), в которую передается идентификатор ресурса и которая возвращает объект Color.

Используем ресурсы Color в коде Kotlin:

package com.example.helloapp

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Text

import androidx.compose.ui.Modifier
import androidx.compose.ui.res.colorResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Text(
                text="Hello METANIT.COM",
                fontSize= 26.sp,
                color = colorResource(R.color.textViewFontColor),
                modifier = Modifier.padding(20.dp)
                    .fillMaxWidth()
                    .background(colorResource(R.color.textViewBackColor))
                    .padding(50.dp)
            )
        }
    }
}
Ресурсы Color в Kotlin и Jetpack Compose и Android
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850