Ресурсы dimension

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

Ресурсы dimension задают размеры. Определение размеров должно находиться в папке res/values в файле с любым произвольным именем. Общий синтаксис определения ресурса следующий:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="имя_ресурса">используемый_размер</dimen>
</resources>

Как и другие ресурсы, ресурс dimension определяется в корневом элементе <resources>. Тег <dimen> обозначает ресурс и в качестве значения принимает некоторое значение размера в единицах dp.

Так, добавим в Android Studio в папку res/values новый элемент Values Resources File, который назовем dimens.xml.

Ресурс Dimension в Android Studio и Jetpack Compose и Kotlin, dimens.xml

Определим в нем следующее содержимое:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="padding">30.dp</dimen>
    <dimen name="width">200.dp</dimen>
    <dimen name="height">150.dp</dimen>
</resources>

Здесь определены три ресурса. Первый ресурс - padding имеет значение 30.dp, второй ресурс - width - 200.dp, третий ресурс - height - 150.dp. Названия ресурсов могут быть произвольными. А в качестве единиц измерения могут применяться только единицы dp.

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

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

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

R.dimen.padding

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

Используем ресурс в коде 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.Box
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width

import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.dimensionResource

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Box(
                Modifier.width(dimensionResource(R.dimen.width))
                    .height(dimensionResource(R.dimen.height))
                    .padding(dimensionResource(R.dimen.padding))
                    .background(Color.DarkGray)
            )
        }
    }
}
Ресурсы Dimensions в Kotlin и Jetpack Compose и Android

Здесь создается объект Box, в функциях-модификаторах которого для установки ширины, высоты и отступов применяются ресурсы dimen.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850