Ely*_*lye 4 android android-jetpack-compose
在下面的代码中,toPx()可以在 中工作Canvas,但不能在Surface.
为什么?
Canvas(modifier = Modifier.size(16.dp)) {
val textPaint = Paint().asFrameworkPaint().apply {
textSize = 32.dp.toPx()
}
}
Surface(modifier = Modifier.size(16.dp)) {
val textPaint = Paint().asFrameworkPaint().apply {
textSize = 32.dp.toPx() // Error `toPx()`
}
}
Run Code Online (Sandbox Code Playgroud)
该toPx()函数是在Density接口内定义的,除非您提供它,否则无法使用它。与提供它的Canvasa 一起工作。DrawScope
要使用它,您可以提供Density使用LocalDensity提供者。
就像是:
val dpToPx = with(LocalDensity.current) { 32.dp.toPx() }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
874 次 |
| 最近记录: |