我有一个Jetpack Compose Text()元素,我想用黑色来概括它,如。有人知道怎么做吗?我试过使用border()修饰符,但那只是在包含文本的矩形区域周围添加了一个边框。我也试过覆盖两个文本元素,但那也不太起作用。
kcwpcxri1#
1.4.0-alpha01在TextStyle函数中引入了一个DrawStyle参数,用于绘制带轮廓的文本。您可以使用类似于以下内容的内容:
1.4.0-alpha01
TextStyle
DrawStyle
Text( text = "Sample", style = TextStyle.Default.copy( fontSize = 64.sp, drawStyle = Stroke( miter = 10f, width = 5f, join = StrokeJoin.Round ) ) )
在1.4.0-alpha01之前,您可以使用Canvas和**drawIntoCanvas**函数。类似于:
Canvas
drawIntoCanvas
Canvas( modifier = Modifier.fillMaxSize(), onDraw = { drawIntoCanvas { it.nativeCanvas.drawText( "Sample", 0f, 120.dp.toPx(), textPaintStroke ) it.nativeCanvas.drawText( "Sample", 0f, 120.dp.toPx(), textPaint ) } } )
使用这些Paint:
Paint
val textPaintStroke = Paint().asFrameworkPaint().apply { isAntiAlias = true style = android.graphics.Paint.Style.STROKE textSize = 64f color = android.graphics.Color.BLACK strokeWidth = 12f strokeMiter= 10f strokeJoin = android.graphics.Paint.Join.ROUND } val textPaint = Paint().asFrameworkPaint().apply { isAntiAlias = true style = android.graphics.Paint.Style.FILL textSize = 64f color = android.graphics.Color.WHITE }
1条答案
按热度按时间kcwpcxri1#
1.4.0-alpha01
在TextStyle
函数中引入了一个DrawStyle
参数,用于绘制带轮廓的文本。您可以使用类似于以下内容的内容:
在
1.4.0-alpha01
之前,您可以使用Canvas
和**drawIntoCanvas
**函数。类似于:
使用这些
Paint
: