Класс Resources
Класс Resources связан с
Context и читает файлы из
res/values/, res/drawable/
и других папок ресурсов.
Объект получают через resources
или getResources.
В Compose для UI чаще берут
stringResource,
но Resources нужен в сервисах
и ViewModel без composable.
Синтаксис
val res = context.resources
val text = res.getString(R.string.app_name)
Методы
| Метод | Описание |
|---|---|
getString |
Возвращает строку по id из strings.xml. |
getColor |
Возвращает цвет по id из colors.xml. |
getDrawable |
Загружает drawable по id. |
getDimension |
Возвращает dimen в пикселях устройства. |
Пример
Давайте прочитаем app_name в Activity и покажем в Compose:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Text
import com.example.app.R
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val label = resources.getString(R.string.app_name)
setContent {
Text(text = label)
}
}
}
На экране будет строка из res/values/strings.xml,
в учебном проекте это "abcde".
Смотрите также
-
функция
stringResource,
Compose-обёртка над строками -
класс
Drawable,
который возвращает getDrawable -
функция
painterResource,
которая грузит drawable в Compose -
тег
application,
где label ссылается на строковый ресурс