作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大多数 Jetpack Compose API 使用 Dp作为尺寸单位,但有时需要像素值。如何将 dp 值转换为 px?仅举个例子,graphicsLayer()接受 translationX/Y
的修饰符以像素为单位的参数。
最佳答案
有 toPx()
和 roundToPx()
Density 定义的方法界面,你可以像这样使用它:
import androidx.compose.ui.platform.LocalDensity
val pxValue = with(LocalDensity.current) { 16.dp.toPx() }
// or
val pxValue = LocalDensity.current.run { 16.dp.toPx() }
如果您是 Kotlin 语言的新手,这样的表达式可能看起来令人困惑,所以让我们分解一下,看看它是如何工作的。
toPx()
是
extension function的
Dp
类,您可以将其视为
Dp
类方法。但是自从
toPx()
在
Density 内定义接口(interface),除非您提供密度为
receiver,否则无法使用它.最后你可以从
CompositionLocal 得到电流密度。命名为
LocalDensity .
关于android - 如何在 Android Jetpack Compose 中将 Dp 转换为像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65921799/
我是一名优秀的程序员,十分优秀!