Jetpack Compose Desktop:获取显示器的高度和宽度

3
我正在寻找一种在Jetpack Compose for Desktop中获取您的显示器高度和宽度的方法,但尽管我在SO上找到了一些问题(Screen width and height in Jetpack Compose),但并不是很有帮助,因为没有像LocalConfiguration这样的值(和其他东西),只有一个不同的东西-LocalViewConfiguration
因此,对于我的最初目标,我想能够自动更改应用程序中使用的字体大小:textStyle = TextStyle(fontFamily = FontFamily.Monospace, fontSize = calculateRelativeFontSize()),其中:@Composable fun calculateRelativeFontSize(): TextUnit { val height = ...; val width = ...; ...} 最后,如果我遗漏了什么,请原谅,因为我不是真正的Kotlin或Jetpack Compose程序员,只是被要求做一些事情...
P.S. 我正在Linux下工作,所以...也许以某种方式(真的不相信那个)...(你懂的)
1个回答

1

请记住,JetBrains Compose是建立在Skia和Java的AWT库之上的。您可以使用它们与屏幕信息相关的本机函数。例如,使用AWT:

// CloudsAnimation.kt
import org.jetbrains.skia.RuntimeEffect
import java.awt.Toolkit

@Composable
fun CloudsAnimation(
    modifier: Modifier = Modifier
) {
    val screenSize = Toolkit.getDefaultToolkit().screenSize
    val screenHeight = screenSize.height
    val screenWidth = screenSize.width
    println("Width: $screenWidth ; Height: $screenHeight")
    // ... composables below etc

}

在我的13英寸MacBook Pro上运行此操作:
Width: 1440 ; Height: 900

1
奇怪,这些导入对我来说导致了未解决的引用。 - undefined
@LabGecko 这还要看SDK或构建工具,还可以参考这个帖子:https://youtrack.jetbrains.com/issue/IDEA-236262/IDE-doesnt-start-Could-not-initialize-class-java.awt.Color 我在这个回答中使用的SDK是Azul 16。 - undefined
我正在使用Android Studio 2022.3.1(长颈鹿)Patch 1版本。在错误报告中,我只看到了Visual C++。 - undefined
你的桌面应用程序构建配置中有这个吗?使用Java()? kotlin { jvm { withJava() } - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接