Класс BorderStroke
Класс BorderStroke описывает линию рамки:
толщину в
Dp
и заливку линии классом
Color
или Brush.
Объект передают в перегрузку
border
вместе с
Shape,
когда толщину и цвет удобнее держать в одной переменной.
Синтаксис
BorderStroke(2.dp, Color.Black)
Пример
Давайте обведём текст через BorderStroke:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val frame = BorderStroke(2.dp, Color.Black)
Text(
text = "abcde",
modifier = Modifier
.border(
border = frame,
shape = RoundedCornerShape(8.dp),
)
.padding(12.dp),
)
}
}
}
На экране вокруг текста появится чёрная рамка
толщиной 2 dp со скруглением.
Пример
Давайте зададим обводку градиентом через Brush:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val line = Brush.horizontalGradient(
listOf(Color.Red, Color.Blue),
)
val frame = BorderStroke(3.dp, line)
Text(
text = "12345",
modifier = Modifier
.size(140.dp)
.border(
border = frame,
shape = RoundedCornerShape(12.dp),
),
)
}
}
}
На экране рамка плавно перейдёт от красного к синему по горизонтали.
Смотрите также
-
метод
border,
куда передают BorderStroke -
класс
Color,
однотонная линия обводки -
класс
Brush,
градиентная линия обводки -
класс
RoundedCornerShape,
форма контура рамки